关于JQuery元素的提取

2018-12-13  本文已影响0人  Leophen

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

5aab8eae00018fca05540208.jpg

方法一
console.log($('li').get())
方法二
console.log($('li').toArray())
方法三
console.log($('li'))

console.log($('li').index())不能实现

因为$.get() / $.toArray / $(“”)都能获取到元素的集合,
但前$.get()$.toArray获取到的是DOM对象的集合,
$(“”)获取的是JQ对象的集合,
index()是获取索引的。

上一篇 下一篇

猜你喜欢

热点阅读