Jquery通过Selector vs Method查找所选元素

时间:2016-05-25 05:22:55

标签: jquery

我在这里有点困惑,最好选择直接使用jquery中的选择器或方法

例如:

$("div p:first") with $("div p").first() -> it's same right

我们选择选择器而不是方法吗? 例如,因为选择器运行得更快? (例子不是事实)

1 个答案:

答案 0 :(得分:2)

它们实际上几乎相同

  1. $('div p:first')会在找到pdiv的第一个元素后返回该元素。

  2. $('div p').first()会迭代p中的所有div元素,然后返回第一个元素。

  3. 如果从控制台检查,它们具有不同的prevObject属性。

    jQuery使用此对象作为当前链中最新过滤操作的堆栈,并将匹配元素集返回到其先前状态。因为他们需要这个end()功能。

    取自jQuery

    jQuery.fn = jQuery.prototype = {
        ...
        end: function() {
            return this.prevObject || this.constructor();
        }
    };
    

    如果你想谈谈速度比较,我建议你选择第一个。因为您不需要遍历p

    中的所有div