Осуществляет поиск элементов внутри уже выбранных элементов.
Метод имеет варианты использования и соответствующий синтаксис:
- ищет элементы, соответствующие заданному селектору, внутри выбранных элементов.1
.find(selector)
- осуществляет поиск элемента 1
.find(element)
внутри выбранных элементов. Параметр 1
element
задается в виде DOM-элемента.1
element
- осуществляет поиск элементов внутри выбранных элементов, оставляя те, которые содержатся в заданном объекте jQuery.1
.find(jQuery object)
Примеры использования.
- вернет все элементы
, находящиеся внутри div-элементов:1
span
$('div').find('span')
- вернет все элементы с классом
, находящиеся внутри div-элементов:1
.bigBlock
$('div').find('.bigBlock')
Вышеуказанные примеры хороши лишь в качестве демонстрации возможностей метода
.1
.find()
Например, искать span-элементы, лежащие внутри div’ов правильнее будет так:
$('div span')
Метод
же удобно использовать, когда некоторые элементы уже найдены и необходимо осуществить поиск других элементов внутри уже найденных элементов:1
.find()
// найдем все ul-элементы на странице
var $ulElements = $('ul');
// найдем li-элементы с классом .userBox внутри $ulElements
$ulElements.find('li.userBox');
// сокращенный вариант записи
var $ulElements = $('ul').find('li.userBox');
Так же
удобен для использования в цепочках методов:1
.find()
$('ul') // найдем все ul-элементы на странице
.addClass('listElements') // добавим ul'ам класс .listElements
.find('li.userBox') // найдем li-элементы с классом .userBox внутри ul'ов
.remove(); // и удалим их
// сокращенный вариант записи
$('ul').addClass('listElements').find('li.userBox').remove();
Работа метода
схожа с методом 1
.find()
, который осуществляет поиск подходящих дочерних элементов.1
.children()
Отличие заключается в том, что
проводит поиск не только среди дочерних элементов, но и внутри них тоже (другими словами - поиск проходит на всех уровнях иерархии DOM, в то время как 1
.find()
ищет только на одном уровне).1
.children()
Пример метода .find()
Внутри каждого ul-элемента найдем первый li-элемент и последний p-элемент:
// найдем и сохраним все ul-элементы
var $matched = $('ul');
// выделим их
$matched.addClass('matched');
// найдем внутри уже выбранных элементов все требуемые и выделим их, добавив класс .result
$matched.find('li:first, p:last').addClass('result');
// сокращенный вариант записи
var $matched = $('ul').addClass('matched').find('li:first, p:last').addClass('result');
Фильтрация элементов помощью .find()
Кроме поиска, .find() может осуществлять своеобразную фильтрацию.
var $span = $('span'); // создать переменную $span и поместить в нее результат выборки по элементам span
$('p').find($span).css('color','blue'); // найти все элементы p, среди этих найденных элементов найти все элементы span и расскрасить их
Материал статьи полностью основан на http://jquery.page2page.ru и не претендует на оригинальность.