jQuery“find”方法的替代方案

时间:2011-08-31 14:51:43

标签: javascript jquery

$('.wrapper a').find('a'); //return empty object

但我正在寻找一种通过选择器获得所有锚点的方法。问题是找到方法只看后代那么它的替代方案是什么?

请在jsfiddle.net

上进行测试

4 个答案:

答案 0 :(得分:9)

jQuery find获取当前匹配元素集中每个元素的后代,由选择器,jQuery对象或元素过滤。

children获取匹配元素集中每个元素的子元素,可选择由选择器进行过滤。

我认为你试图在同一级别找到元素,然后你应该使用children。或者,您也可以使用filter根据选择器过滤匹配的结果。

filter将匹配元素的集合减少为与选择器匹配的元素或传递函数的测试。

试试这个

var div = $('.wrapper div').filter('.parent');

答案 1 :(得分:4)

寻找这个?

var div = $('.wrapper div').filter('.parent');

A forked demo of yours

答案 2 :(得分:1)

$('.wrapper a').find('a');查找作为.wapprer后代的链接内的链接。 我想你可能意味着$('.wrapper').find('a');。在你的fiddle

$('.wrapper').find('.parent');` 

不受:

$('.wrapper div').find('.parent');

答案 3 :(得分:1)

.find()函数的替代项如下:

  1. Child Selector (“parent > child”),它仅选择一级后代或直接子元素。例如$('#parent_id > #child_id')$(".parent > .first-level-child")
  2. Descendant Selector (“ancestor descendant”),它会选择该元素的孩子,孙子,曾孙,依此类推。您可以在其中使用$('#parent_id #child_id')$('#parent_id #grandchild_id')$(".parent .great-grand-child")$( "form input" )
  3. .filter()仅搜索与前提条件匹配的元素
  4. .parent()获取匹配元素的当前集合中每个元素的父元素,可以选择使用选择器进行过滤。
  5. .children()的工作方式与find完全相同,但只会找到一级子孙,而不会找到更远的后代。
  6. .closest()从当前元素开始获得与选择器匹配的最近(第一个)元素

有关jquery选择器的详细信息,请检查JQuery Selectors