1.关于eq()方法
58c0c531000199ad02480328.jpg在以上代码中:
$('li:eq(0)')[0] === $('li')[0]
为 true;$('li:eq(0)')[0] === $('li').eq(0)[0]
为 true;$('li').eq(0)[0] === $('li').first()[0]
为 true;
但是
$('li:eq(0)') === $('li').eq(0)
为 false;
因为
$('li:eq(0)')
是通过选择器的方式来获取jQuery对象,
$('li').eq(0)
是通过eq方法提取出对应索引的jQuery对象,
两个的原理不同,效率也不同,
eq方法的性能比eq选择器要高很多。
两种方式获取到的返回值也不一样,虽然都是jQuery对象,但是包含不同的属性,
比如$('li:eq(0)')
包含一个selector属性,存储着选择器的值"li:eq(0)"
。
而且由于两个对象并不指向同一个对象,指针不同,
所以即使属性一模一样,也不完全相等。
2.关于元素的提取
补充代码,实现获取到ul
中全部的li
方法一
console.log($('li').get())
方法二
console.log($('li').toArray())
方法三
console.log($('li'))
console.log($('li').index())
不能实现
因为$.get() / $.toArray / $(“”)
都能获取到元素的集合,
但前$.get()
和$.toArray
获取到的是DOM对象的集合,
而$(“”)
获取的是JQ对象的集合,
index()
是获取索引的。
网友评论