jQuery:filter和find之间的区别

时间:2014-03-18 12:38:24

标签: jquery

jquery中filter和find函数有什么区别? 根据我的经验,过滤函数和查找函数在jquery中做同样的工作。 谁可以区分它们?

2 个答案:

答案 0 :(得分:2)

.filter()将采用jQuery集合(元素列表)并将其过滤以在新集合中提供子集。

.find()查找与传递的选择器匹配的元素的后代。

答案 1 :(得分:1)

find method,检索与给定选择器匹配的一组元素。

var items = $( "#group" ).find( "#.item" ); // finds items within the group

然后filter method可以将已匹配的元素与另一个选择器缩小为较小的集合。

var special_items = items.filter( ".special" ); // only extract "special" items

基本上,他们都可以做同样的工作。您可以通过简单地将每个元素传递给过滤器函数来模拟带过滤器的查找功能。这并没有多大意义,但在尝试理解它们之间的差异时可能会有所帮助。

以下两个命令将产生相同数量的元素:

$( document ).find( "a" ).length

$( "*" ).filter( "a" ).length

关于性能考虑,我会尽可能地说,限制需要扫描的元素数量。