将元素的子元素添加到jQuery集而不离开链

时间:2011-05-10 08:21:23

标签: jquery add composition traversal

是否有可能在不离开链的情况下将jQuery集中的元素子元素添加到集合中?

即,离开它看起来像这样:

var set = $('.some-elements');
set.add('*', set);
// or immediate ones only
set.add(set.children());

我正在寻找一种方法来执行其中任何一项而不创建临时set变量:

$('.some-elements').jqMagic("*");

(当然可以为此编写一个“jqMagic”插件。我只想确定,jQuery核心中没有这个功能。)

1 个答案:

答案 0 :(得分:6)

我相信AndSelf会让你做你想要的。

更新示例:

给出以下html:

<div id="1" class="testdiv">
   <a href="#">test a</a>
   <a href="#">test b</a>
</div>


<div id="2" class="testdiv">
    <a href="#">test c</a>
    <a href="#">test d</a>
</div>

此代码仅为子项(本例中为锚标记)提供红色边框:

<script language="javascript" type="text/javascript">

    $('.testdiv').children().css('border','solid 1px red');

</script>

虽然这段代码(使用andSelf())包含元素列表中的父div,因此选择父div和子divs - 从而根据您的请求给出合并集:

<script language="javascript" type="text/javascript">

    $('.testdiv').children().andSelf().css('border','solid 1px red');

</script>