Добавляйте дочерние элементы в набор jQuery, не покидая цепочку - PullRequest
3 голосов
/ 10 мая 2011

Есть ли возможность добавить дочерние элементы в наборе jQuery к набору, не покидая цепочку?

Т.е. с , оставив это будет выглядеть так:

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

Я ищу способ сделать что-либо из этого без создания временной переменной set:

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

(Конечно, для этого можно написать плагин "jqMagic".Я просто хочу быть уверен, что в ядре jQuery нет этой функциональности.)

1 Ответ

6 голосов
/ 10 мая 2011

Полагаю, 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, так и дочерние элементы div, что дает объединенный набор в соответствии с вашим запросом:

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

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

</script>
...