我在这里有点困惑,最好选择直接使用jquery中的选择器或方法
例如:
$("div p:first") with $("div p").first() -> it's same right
我们选择选择器而不是方法吗? 例如,因为选择器运行得更快? (例子不是事实)
答案 0 :(得分:2)
它们实际上几乎相同
$('div p:first')
会在找到p
中div
的第一个元素后返回该元素。
$('div p').first()
会迭代p
中的所有div
元素,然后返回第一个元素。
如果从控制台检查,它们具有不同的prevObject
属性。
jQuery使用此对象作为当前链中最新过滤操作的堆栈,并将匹配元素集返回到其先前状态。因为他们需要这个end()功能。
取自jQuery
jQuery.fn = jQuery.prototype = {
...
end: function() {
return this.prevObject || this.constructor();
}
};
如果你想谈谈速度比较,我建议你选择第一个。因为您不需要遍历p
div