логотип PurpleSchool
логотип PurpleSchool

.closest() в JavaScript

Автор

Дмитрий Нечаев

Метод .closest() в JavaScript позволяет нам получить ближайший родительский элемент, который соответствует заданному CSS-селектору. Это очень полезно, когда мы хотим найти определенный родительский элемент относительно текущего элемента, особенно когда у нас есть вложенные структуры в HTML. В этой статье мы рассмотрим, как использовать .closest() и какие возможности он предоставляет.

Введение в .closest()

Метод .closest() - это метод, доступный для DOM-элементов, который позволяет нам получить ближайший родительский элемент, удовлетворяющий заданному CSS-селектору. Этот метод осуществляет поиск родительских элементов, начиная с текущего элемента и двигаясь вверх по DOM-дереву. Как только он находит элемент, удовлетворяющий селектору, поиск останавливается, и этот элемент возвращается.

Синтаксис .closest() выглядит следующим образом:

element.closest(selector);

Где:

  • element
    • это DOM-элемент, относительно которого мы хотим начать поиск родительского элемента.
  • selector
    • это строка, представляющая CSS-селектор, по которому нужно выполнить поиск родительского элемента.

Примеры использования .closest()

Давайте рассмотрим несколько примеров использования метода .closest() для поиска родительского элемента по заданному CSS-селектору.

1. Нахождение родительского элемента с определенным классом

<div class="container">
  <div class="item">
    <button>Кнопка</button>
  </div>
</div>
// Находим кнопку
const button = document.querySelector('button');

// Находим ближайший родительский элемент с классом "container"
const container = button.closest('.container');

// Добавляем стиль к найденному родительскому элементу
container.style.border = '2px solid red';

В этом примере мы находим кнопку, а затем с помощью .closest() находим ближайший родительский элемент с классом "container" и добавляем ему стиль.

2. Нахождение родительского элемента по тегу

<div>
  <p>Первый абзац</p>
  <div>
    <span>Это спан</span>
  </div>
</div>
// Находим спан
const span = document.querySelector('span');

// Находим ближайший родительский элемент <div>
const div = span.closest('div');

// Добавляем стиль к найденному родительскому элементу
div.style.backgroundColor = 'lightblue';

В этом примере мы находим спан, а затем с помощью .closest() находим ближайший родительский элемент <div> и добавляем ему стиль.

3. Нахождение родительского элемента по id

<div id="parent">
  <div id="child">
    <p>Этот параграф находится внутри дочернего элемента</p>
  </div>
</div>
// Находим параграф
const paragraph = document.querySelector('p');

// Находим ближайший родительский элемент с id "parent"
const parentDiv = paragraph.closest('#parent');

// Добавляем стиль к найденному родительскому элементу
parentDiv.style.border = '2px solid green';

В этом примере мы находим параграф, а затем с помощью .closest() находим ближайший родительский элемент с id "parent" и добавляем ему стиль.

Заключение

Метод .closest() является мощным инструментом для нахождения ближайшего родительского элемента, который соответствует заданному CSS-селектору. Это удобно для управления и манипуляции элементами в комплексных и вложенных структурах DOM.

Стрелочка влево.dataset в JavaScript.classList в JavaScriptСтрелочка вправо

Все гайды по Javascript

Как работает метод trim() - JavaScriptКак работает метод toUpperCase() - JavaScriptКак работает метод toLowerCase() - JavaScriptКак работает метод substring() - JavaScriptКак работает метод startsWith() - JavaScriptКак работает метод split() - JavaScriptКак работает метод slice() - JavaScriptКак работает метод search() - JavaScriptКак работает метод replaceAll() - JavaScriptКак работает метод replace() - JavaScriptКак работает метод repeat() - JavaScriptКак работает метод padStart() - JavaScriptКак работает метод padEnd() - JavaScriptКак работает метод matchAll() - JavaScriptКак работает метод match() - JavaScriptКак работает метод localeCompare() - JavaScriptКак работает свойство length - JavaScriptКак работает метод lastIndexOf() - JavaScriptКак работает метод indexOf() - JavaScriptКак работает метод includes() - JavaScriptКак работает метод fromCodePoint() - JavaScriptКак работает метод fromCharCode() - JavaScriptКак работает метод endsWith() - JavaScriptКак работает метод concat() - JavaScriptКак работает метод codePointAt() - JavaScriptКак работает метод charCodeAt() - JavaScriptКак работает метод charAt() - JavaScript
Итератор в JavaScript
Error в JavaScripttry...catch в JavaScript
Событие wheel в JavaScriptСобытие unload в JavaScriptСобытие touch в JavaScriptСобытие submit в JavaScriptСобытие scroll в JavaScriptСобытие reset в JavaScriptМетод .preventDefault() в JavaScriptСобытие mouseover в JavaScriptСобытие mouseout в JavaScriptСобытие load в JavaScriptСобытие keyup в JavaScriptСобытие keydown в JavaScriptСобытие invalid в JavaScriptСобытие input в JavaScriptСобытийная модель Event в JavaScriptОбъект события Event в JavaScriptСобытие DOMContentLoaded в JavaScriptСобытие dblclick в JavaScriptСобытие click в JavaScriptСобытие change в JavaScriptСобытие beforeunload в JavaScript
Как работает метод some() - JavaScriptКак работает метод reverse() - JavaScriptКак работает метод reduce() - JavaScriptКак работает метод map() - JavaScriptКак работает метод isArray() - JavaScriptКак работает метод indexOf() - JavaScriptКак работает метод includes() - JavaScriptКак работает метод from() - JavaScriptКак работает метод forEach() - JavaScriptКак работает метод flatMap() - JavaScriptКак работает метод flat() - JavaScriptКак работает метод findIndex() - JavaScriptКак работает метод find() - JavaScriptКак работает метод filter() - JavaScriptКак работает метод every() - JavaScriptМассивы в JavaScript
Открыть базу знаний