get
- 参数:
- 做用:
- 将jQ对象转换为DOM对象,并获取该DOM对象
- 说明:
- index为空、null,undfined,返回全部选中DOM对象
- index为正整数,返回从左至右索引index的DOM对象
- idnex为负整数,返回从右至左索引index的DOM对象
- code:
<div class="demo demo1"></div>
<div class="demo demo2"></div>
<div class="demo demo3"></div>
复制代码
var $Demo = $('.demo');
var firstDemo =$Demo.get(0);
console.log(firstDemo);
var allDemo = $Demo.get(null);
console.log(allDemo);
复制代码
eq
- 参数:
- 做用:
- 获取索引值对应的jQ对象
- 说明:
- 当参数为null, false时,获取索引为0的jQ对象
- index为正整数,返回从左至右索引index的jQ对象
- idnex为负整数,返回从右至左索引index的jQ对象
- code:
<div class="demo demo1"></div>
<div class="demo demo2"></div>
<div class="demo demo3"></div>
复制代码
var $Demo = $('.demo');
var firstDemo =$Demo.eq(0);
console.log(firstDemo);
var allDemo = $Demo.eq(null);
console.log(allDemo);
复制代码
find
- 参数:
- 做用:
- 在已有值的基础上,获取符合selector条件的jQ对象
- code:
<div class="wrapper">
<div class="demo demo1"></div>
<span class="demo demo2"></span>
<p class="demo demo3"></p>
</div>
复制代码
var $Wrapper = $('.wrapper');
var $PDemo = $Wrapper.find('p.demo');
console.log($PDemo);
复制代码
实现原理
get:
jQuery.prototype.myGet = function (num) {
return num == null ?
Array.prototype.slice.call(this) :
(num >= 0 ? this[num] : this[num + this.length]);
};
复制代码
eq:
jQuery.prototype.pushStack = function (dom) {
dom.prevObject = this;
return dom;
};
jQuery.prototype.myEq = function (num) {
var dom == null ?
null : (num >= 0 ? this[num] : this[num + this.length]);
return this.pushStack(jQuery(dom));
};
复制代码