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

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

.find( селектор )

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

Описание: Возвращает потомков каждого элемента в текущем наборе соответствующих элементов, отфильтрованных селектором, объектом jQuery или элементом.

.find( селектор )

Добавлена в версию: 1.0
селектор

Выражение, с помощью которого отфильтровываются дополнительные элементы.

.find( объект jQuery )

Добавлена в версию: 1.6
объект jQuery

A jQuery object to match elements against.

.find( элемент )

Добавлена в версию: 1.6
элемент

Элемент,соответствующий элементам.

Данный объект jQuery представляет набор элементов DOM, метод .find() позволяет нам искать в потомках этих элементов в дереве DOM и создать новый объект jQuery из соответствующих элементов. Методы .find() и .children() похожи, за исключением того, что последний ищет только по первому уровню вниз по дереву DOM.

Метод принимает выражение селектора того же типа, который мы можем передать в функцию $(). Элементы будут отфильтрованны тестированием на соответствие селектору.

Рассмотрим на страницу с вложенным списком:

<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>

Если мы начнем с пункта II, мы можем найти элементы списка в нем:

$('li.item-ii').find('li').css('background-color', 'red');

Результатом этого вызова будет красный фон пунктов A, B, 1, 2, 3, и C. Даже если пункт II отмечен в выражении селектора, он не будет включен в результат; только потомки считаются кандидатами на соответствие.

В отличие от остальных методов обхода дерева, выражение выбора требует вызов .find(). Если нам необходимо получить все элементы потомоки, мы можем передать универсальный селектор '*' для достижения этого.

Контекст селектора осуществляется поэтому с помощью метода .find(), $('li.item-ii').find('li') эквивалентен $('li', 'li.item-ii').

Примеры

Пример 1

Поиск дочерних элементов span в наборе всех элементов p, то же самое, что $(«p span»).
$("p").find("span").css('color','red');

Результат выполнения кода выше:

Пример 1 - Полный код:

<!DOCTYPE html>

<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
  
  <script type="text/javascript" language="javascript">

  $(document).ready(function(){
$("p").find("span").css('color','red');
  });
  </script>
</head>
<body>
  <p><span>Hello</span>, how are you?</p>
  <p>Me? I'm <span>good</span>.</p>
</body>
</html>

Пример 2

Заключает каждое слово в блок span, затем добавляет эффект при наведении и выделяет содержащие букву t слова курсивом.
var newText = $("p").text().split(" ").join("</span> <span>");
    newText = "<span>" + newText + "</span>";

    $("p").html(newText)
          .find("span")
            .hover(function () { $(this).addClass("hilite"); },
                   function () { $(this).removeClass("hilite"); })
          .end()
          .find(":contains('t')")
            .css({"font-style":"italic", "font-weight":"bolder"});
Результат выполнения кода выше:

Пример 2 - Полный код:

<!DOCTYPE html>

<html>

<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>  
  <script type="text/javascript" language="javascript">

  $(document).ready(function(){
    
    var newText = $("p").text().split(" ").join("</span> <span>");
    newText = "<span>" + newText + "</span>";

    $("p").html(newText)
          .find("span")
            .hover(function () { $(this).addClass("hilite"); },
                   function () { $(this).removeClass("hilite"); })
          .end()
          .find(":contains('t')")
            .css({"font-style":"italic", "font-weight":"bolder"});
  });
  </script>

  <style>
  p { font-size:20px; width:200px; cursor:default; 
      color:blue; font-weight:bold; margin:0 10px; }
  .hilite { background:yellow; }
  </style>
</head>
<body>
  <p>
    When the day is short
    find that which matters to you
    or stop believing
  </p>

</body>
</html>

Пример 3

Выборка из всего списка тегов span. Только теги span внутри тегов p меняются на красный, в то время как другие остаются синими.
<!DOCTYPE html>
<html>
<head>
 
<style>
    span
{ color: blue; }
 
</style>
 
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
 
<p><span>Hello</span>, how are you?</p>
 
<p>Me? I'm <span>good</span>.</p>
 
<div>Did you <span>eat</span> yet?</div>
<script>
 
var $spans = $('span');
  $
("p").find( $spans ).css('color','red');
</script>

</body>
</html>
Результат выполнения кода выше:
Была ли эта информация полезной?
   

Комментарии