什麼是querySelector的jQuery等價物?到目前爲止,我發現的唯一方法是選擇所有然後選擇第一個選擇:jQuery等價於querySelector
$(selectorString)[0]
通過上述表達,是jQuery的足夠聰明,不要再找後的首場比賽?
更新:@Mutnowski建議使用eq()和第一個,但在閱讀jQuery文檔後,這兩個方法似乎有相同的缺點:jQuery將首先獲得所有匹配,然後只濾出第一個元素。
什麼是querySelector的jQuery等價物?到目前爲止,我發現的唯一方法是選擇所有然後選擇第一個選擇:jQuery等價於querySelector
$(selectorString)[0]
通過上述表達,是jQuery的足夠聰明,不要再找後的首場比賽?
更新:@Mutnowski建議使用eq()和第一個,但在閱讀jQuery文檔後,這兩個方法似乎有相同的缺點:jQuery將首先獲得所有匹配,然後只濾出第一個元素。
所以看起來在jQuery或i中沒有相當於querySelector我看過的其他圖書館。
解決方法是選擇所有匹配的元素(相當於querySelectorAll),然後過濾出第一個。這可以使用[0](返回一個html節點)或按照@Mutnowski與eq(0)或第一個(返回一個jQuery對象)的建議完成。
你想.EQ(指數)如果你只想在第一次使用。首先(獲得索引
$("td").eq(2)
$("td:eq(2)")
)
$("tr").first()
$("tr:first")
Thx。在我看來,jQuery首先選擇所有匹配,然後才應用過濾器。正確? – Christophe 2012-04-03 19:12:59
@Christophe:正確。 – BoltClock 2012-04-15 19:45:29
你可以寫一個簡單的插件(compatibility notes)
$.fn.firstMatch = function(sel) {
var len = this.length;
if (!len) return this;
for(var i = 0; i < len; i++){
var match = this[i].querySelector(sel);
if (match) return $(match);
}
return $();
}
需要注意的是「情商」是不是一個CSS選擇器,這是一個jQuery的實現。所以爲了獲得最好的性能,最好寫'$(「td」)。eq(2)'而不是'$(「td:eq(2)」)' – Killy 2017-11-16 08:17:24