2016-05-25 189 views
3

我在這裏有點混亂,這是更好的選擇直接使用jQuery的jQuery的查找通過選擇器選擇元素VS法

選擇或方法例如:

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

是否有任何我們選擇選擇而不是方法的條件? 例如,因爲選擇器運行速度更快? (例如只不是真理)

+2

您可以對它們進行基準測試以查看哪個更快 –

+0

'.first()'更適合':first'僞選擇器。 – Jai

+0

@ArunPJohny你可以嗎?瀏覽器不再那麼愚蠢,那些重複性的測試對於優化而言是微不足道的。 – doug65536

回答

2

他們實際上幾乎相同

  1. $('div p:first')將返回一旦pdiv第一元素的元素被發現。

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

如果從控制檯檢查,它們有不同的prevObject屬性。

jQuery將此對象用作當前鏈中最近過濾操作的堆棧,並將匹配元素集返回到其先前狀態。因爲他們需要這個功能end()功能。

從jQuery的

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

兩者如果你想談論速度的比較,我建議去的第一個。因爲您不需要遍歷所有p中的一個div