将选择器与当前集和子项匹配

时间:2014-11-25 05:55:47

标签: jquery jquery-selectors

我正在尝试找到一种方法将选择器应用于JQuery对象,以便它匹配此对象中包含的集合,并且还通过所有子节点“查找”。

我遇到的问题是我只能找到不会下降树的“过滤器”方法和只能在当前元素的子项中开始搜索的“查找”。

我创建了一个示例:http://jsfiddle.net/ppd51pef/

<div class="foo">
    <div class="bar">
        <span>first:</span>
    </div>
</div>
<div class="foo bar">
    <span>second:</span>
</div>

与之相关的Javascript:

var foos = $(".foo");
foos.find(".bar").append("<span>find</span> ");
foos.filter(".bar").append("<span>filter</span> ");
foos.find(".bar").addBack().filter(".bar").append("<span>ugly</span> ");

这里我有一个与两个“foo”类匹配的jquery对象“foos”。鉴于“foos”,我想选择两个“酒吧”类。

示例的输出是:

first: find ugly 
second: filter ugly

基本上我正在寻找一种不那么难看的方式来实现三个查询中的第三个。

1 个答案:

答案 0 :(得分:0)

您可以将addBack()版本与选择器

一起使用

&#13;
&#13;
var foos = $(".foo");
foos.find(".bar").addBack('.bar').append("<span>ugly</span> ");
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="foo">
  <div class="bar">
    <span>first:</span>
  </div>
</div>
<div class="foo bar">
  <span>second:</span>
</div>
&#13;
&#13;
&#13;