jQuery has()和filter()方法有什么区别?

时间:2014-01-16 19:30:54

标签: jquery performance jquery-selectors query-performance

$.has('selecor')$.filter('selector')方法之间有什么区别,哪一方更好?

它们似乎都执行相同的操作,也许有一些性能优势使用one而不是其他?

1 个答案:

答案 0 :(得分:13)

实际上它们完全不同。

filter对匹配的元素进行操作:

  

将匹配元素集合减少到与选择器匹配的元素或通过函数测试。

has过滤器基于匹配元素的后代

  

将匹配元素集减少到具有与选择器或DOM元素匹配的后代的元素。


实际例子:

<span class="outer">outer span</span>
<div  class="outer">
    outer div<br>
    <span>descendant span</span>
</div>

$('.outer').filter('span'); //returns the outer span
$('.outer').has('span');    //returns the outer div

Fiddle