2012-04-03 132 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 $(); 
}