русский  עברית
tadam logo
Нашли ошибку в тексте?
Отметьте её курсором и нажмите
Ctrl + Enter
Проверка орфографии Xhtml.co.il
Orphus system
Рассылка
Присоединитесь к списку рассылки для получения последних новостей

Введите адрес электронной почты:

Категории: Обход jQuery > Поиск

.parentsUntil( [селектор,] [фильтр] )

Возвращает: jQuery

Описание: Получает предков каждого элемента в текущем наборе соответствующих элементов, вплоть до, но не включая элемент соответствующий селектору, узлу DOM или объекту jQuery.

.parentsUntil( [селектор,] [фильтр] )

Добавлена в версию: 1.4
селектор
Строка, содержащая выражение выбора для обозначения на каком предке элемента остановиться.
фильтр
Строка, содержащая выражение выбора для соответствия с элементами.

.parentsUntil( [элемент,] [фильтр] )

Добавлена в версию: 1.6
элемент
Объект, узел DOM
Узел DOM или объект jQuery, указывающие на каком предке элемента остановиться.
фильтр
Строка, содержащая выражение выбора для соответствия с элементами.

Учитывая объект 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>
Была ли эта информация полезной?
   

Комментарии