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

Posted

技术标签:

【中文标题】jQuery has() 和 filter() 方法有啥区别?【英文标题】:What is the difference between jQuery has() and filter() methods?jQuery has() 和 filter() 方法有什么区别? 【发布时间】:2014-02-05 21:51:09 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

它们实际上是完全不同的。

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

【讨论】:

以上是关于jQuery has() 和 filter() 方法有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

jQuery方法

PHP filter_has_var() 函数

JQuery的遍历函数总结

jQuery常见的50种用法

js中的find(),filter(),has()的用法和区别

jQuery筛选