jQuery源码分析-----仿栈与队列操作之get | eq
2017-07-07 10:57
477 查看
get与eq都是获取指定索引的元素
get返回的是DOM对象,直接将querySelectorAll返回的第i个元素赋值给
this[i],get[i]取
this[i]即可
eq返回的是
jQuery对象,即在用
pushStack将this[i]处理。
var $$ = ajQuery = function (selector) { return new ajQuery.fn.init(selector); }; ajQuery.fn = ajQuery.prototype = { init:function (selector) { this.selector = selector; var results = document.querySelectorAll(selector); for(var i = 0;i<results.length;i++){ this[i] = results[i]; } return this; }, constructor:ajQuery }; ajQuery.prototype.init.prototype = ajQuery.prototype; ajQuery.extend = ajQuery.fn.extend = function () { var target = arguments[0]; if(arguments.length == 1){ target = this; } for(var i = 0;i<arguments.length;i++){ if((options = arguments[i]) != null) { for(var option in options){ target[option] = options[option]; } } } return target; }; ajQuery.fn.extend({ get:function (num) {{ if(num != null){ return (num<0? this[this.length+num] :this[num]); }else{ return [].slice.call(this);//返回所有元素 } }}, setName:function (name) { this.name = name; return this; }, getName:function () { console.log(this.name); return this; } }); var li = $$('li').setName('miemie').getName().get(2); console.log(li);
相关文章推荐
- jQuery源码分析---仿栈与队列的操作
- jQuery源码分析13--仿栈与队列的操作(数组的操作)
- jQuery源码分析系列:队列操作
- jQuery源码学习 item3- get()和eq()分析和对比
- jQuery源码分析之jQuery.eq()和jQuery.get()方法比较
- jQuery源码分析14--get与eq的区别
- jQuery源码学习 之 仿栈与队列操作
- jQuery源码分析14--get与eq的区别
- Memcached源码分析:内容包括get过程、set操作、LRU操作、Hash表操作、连接队列等
- [原创] jQuery源码分析-13 CSS操作-CSS-类样式-addClass+removeClass+toggleClass+hasClass
- 【转】jQuery源码分析-13 CSS操作-CSS-类样式-addClass+removeClass+toggleClass+hasClass
- jQuery源码分析-12 DOM操作-Manipulation-核心函数jQuery.buildFragment()
- jQuery源码分析-05异步队列 Deferred
- jQuery源码分析系列(39) : 动画队列
- jquery源码解析:jQuery队列操作queue方法实现的原理
- jQuery源码分析-13 CSS操作-CSS-样式表-jQuery.fn.css()
- jQuery原型属性constructor,selector,length,jquery和原型方法size,get,toArray源码分析
- jQuery源码分析-12 DOM操作-Manipulation-核心函数.domManip()
- jQuery源码分析(版本1.6.1)___属性操作
- jQuery源码分析-12 DOM操作-Manipulation-核心函数jQuery.clean()