2012-04-03 131 views
7

什麼是querySelector的jQuery等價物?到目前爲止,我發現的唯一方法是選擇所有然後選擇第一個選擇:jQuery等價於querySelector

$(selectorString)[0] 

通過上述表達,是jQuery的足夠聰明,不要再找後的首場比賽?

更新:@Mutnowski建議使用eq()和第一個,但在閱讀jQuery文檔後,這兩個方法似乎有相同的缺點:jQuery將首先獲得所有匹配,然後只濾出第一個元素。

+0

需要注意的是「情商」是不是一個CSS選擇器,這是一個jQuery的實現。所以爲了獲得最好的性能,最好寫'$(「td」)。eq(2)'而不是'$(「td:eq(2)」)' – Killy 2017-11-16 08:17:24

回答

1

所以看起來在jQuery或i中沒有相當於querySelector我看過的其他圖書館。

解決方法是選擇所有匹配的元素(相當於querySelectorAll),然後過濾出第一個。這可以使用[0](返回一個html節點)或按照@Mutnowski與eq(0)或第一個(返回一個jQuery對象)的建議完成。

0

你可以寫一個簡單的插件(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 $(); 
}