.closest()
Возвращает ближайший родительский элемент (или сам элемент), который соответствует заданному CSS-селектору.
closest(element, selector)
Метод фильтрации .closest()
находит ближайший родительский элемент (или сам элемент), который совпадает с переданным CSS-селектором, двигаясь вверх по дереву DOM.
Использование
В следующем примере используем util.closest()
, чтобы найти родительский элемент у #my-element
(какой именно родитель см. код ниже),
добавим родительскому элементу класс .uk-text-danger
с помощью функции util.addClass().
<article class="uk-article">
<h2>Заголовок</h2>
<div id="myEx">
<ul>
<li>
<div id="my-element">
<p>Какой-то контент</p>
</div>
</li>
</ul>
</div>
</article>
const myElem = util.$('#my-element');
const myTarget = util.closest(myElem, 'ul');
// const myTarget = util.closest(myElem, 'div'); // Результат - он и будет, т.е. #my-element
// const myTarget = util.closest(myElem, '#myEx'); // Результат - блок с ID = myEx
// const myTarget = util.closest(myElem, 'article.uk-article'); // Результат - статья
util.addClass(myTarget, 'uk-text-danger');
Результат
<article class="uk-article">
<h2>Заголовок</h2>
<div id="myEx">
<ul class="uk-text-danger">
<li>
<div id="my-element">
<p>Какой-то контент</p>
</div>
</li>
</ul>
</div>
</article>
Если нужно получить дочерние элементы определённого элемента на один уровень вниз по дереву DOM см. util.children(). Если нужен поиск элемента на несколько уровней, то можно обратить внимание на функцию util.find() или util.$(). Если требуется поиск нескольких элементов - см. util.findAll() или util.$$().