Найближчий підходящий предок
Матеріал із JQuery
selector— селектор, за яким відбуватиметься пошук.context— область пошуку (якщо вона не задана, то область пошуку буде весь документ), яка може бути задана DOM-елементом, jQuery-об'єктом або об'єктом документа.
специфічна версія методу closest(), зроблена переважно для внутрішніх потреб бібліотеки. Замість одного селектора тут задається масив селекторів. В результаті метод повертає масив js-об'єктів, кожен з яких містить два поля: selector (містить один із заданих в масиві селекторів) і elem з DOM-елементом, який був знайдений методом closest(selector), застосованим до першого з обраних елементів.
selectors— масив селекторів, якими вибиратимуться потрібні елементи.context- див. вище.
jQuery object— об'єкт jQuery за елементами якого відбуватиметься пошук.
element— DOM-елемент, за яким відбуватиметься пошук (ця версія методу зручна для перевірки наявності елемента серед усіх вибраних елементів та їх предків).
| $("#lBlock").closest("div") | шукатиме перший div-елемент серед елемента з > |
| $(".lBlock").closest("div") | для кожного елемента з класом lBlock шукатиме перший div-елемент серед самого елемента та його предків. |
closest здійснює пошук елементів уздовж DOM-ієрархії кожного з вибраних елементів, що робить його схожим на parents(). Однак варто розрізняти ці методи:
| closest() | parents() |
| Починає пошук безпосередньо з вибраного (обраного) елемента і рухається вгору ієрархією. | Починає пошук з «батьків» вибраних елементів і рухається вгору ієрархією |
| Рухаючись вгору ієрархією зупиняє пошук після першого відповідного елемента (після чого починає здійснювати пошук для наступного обраного елемента). Тому знаходить не більше одного елемента для кожного з обраних. | Рухається вгору ієрархією до кінця, збираючи всі відповідні елементи. Тому може знаходити багато об'єктів для кожного обраного. |
В дії
Для кожного елемента з класом matched, знайдемо найближчий li-елемент з наступних: сам вибраний елемент, всі його предки.