.parentsUntil( [селектор,] [фильтр] )
Описание: Получает предков каждого элемента в текущем наборе соответствующих элементов, вплоть до, но не включая элемент соответствующий селектору, узлу DOM или объекту jQuery.
.parentsUntil( [селектор,] [фильтр] )
.parentsUntil( [элемент,] [фильтр] )
Учитывая объект jQuery, который представляет набор элементов DOM, метод .parentsUntil() позволяет нам искать в преемниках этих элементов
до достижения элемента, в соответствии с селектором, переданным в методе аргумента.
В результате объект jQuery включает всех братьев до, но не включая один, указанный в селекторе .parentsUntil().
Рассмотрим страницу с вложенным списком:
<ul class="level-1">
<li class="item-i">I</li>
<li class="item-ii">II
<ul class="level-2">
<li class="item-a">A</li>
<li class="item-b">B
<ul class="level-3">
<li class="item-1">1</li>
<li class="item-2">2</li>
<li class="item-3">3</li>
</ul>
</li>
<li class="item-c">C</li>
</ul>
</li>
<li class="item-iii">III</li>
</ul>
Если мы начнем с item A, мы можем найти его предков до, но не включая
<ul class="level-1">:
$('li.item-a').parentsUntil('.level-1').css('background-color', 'red');
Результатом этого вызова будет красный фон для level-2 и для item II.
Если селектор не соответствует или не предоставлен,
возвращаемый объект jQuery будет включать всех предыдущих предков объекта jQuery.
Для примера,
скажем, мы начинаем снова с item A, но на этот раз мы используем селектор, который не соответствует какому-либо из его предков:
$('li.item-a').parentsUntil('.not-here').css('background-color', 'red');
Результатом этого вызова будет добавленный стиль красного фона к списку level-2, item II, списку level-1, элементу <body>, и элементу <html>.
Начиная с jQuery 1.6, узел DOM или объект jQuery, вместо селектора, может быть использован для первого аргумента .parentsUntil().
Пример
Находит всех предков <li class="item-a"> до <ul class="level-1"> и дает им красный фон.
$('li.item-a').parentsUntil('.level-1').css('background-color', 'red');
Пример - Полный код:
<!DOCTYPE html> <html> <head> <script src="http://code.jquery.com/jquery-latest.js"></script> <script type="text/javascript" language="javascript"> $(document).ready(function(){ $('li.item-a').parentsUntil('.level-1').css('background-color', 'red'); }); </script> </head> <body> <ul class="level-1"> <li class="item-i">I</li> <li class="item-ii">II <ul class="level-2"> <li class="item-a">A</li> <li class="item-b">B <ul class="level-3"> <li class="item-1">1</li> <li class="item-2">2</li> <li class="item-3">3</li> </ul> </li> <li class="item-c">C</li> </ul> </li> <li class="item-iii">III</li> </ul> <script> $('li.item-a').parentsUntil('.level-1') .css('background-color', 'red'); </script> </body> </html>

