Link Search Menu Expand Document
23 Декабря 2023 г.

Поиск элементов в DOM

Содержание

Найти элемент на странице можно несколькими способами, полезно всех их знать и уметь применять.

getElementById()

Если элемент на странице имеет атрибут id, то его можно получить с помощью метода getElementById(). Важно, чтобы на одной странице он был уникальный, тогда поиск будет работать быстро.

let element = document.getElementById('elementId'); // Получили элемент или null
// используем как нужно

Пример 2.1 Поиск элементов на странице getElementById()

Найдем и выделим элемент

Открыть пример 2.1 в новой вкладке

querySelector()

Метод позволяет по селектору найти один элемент на странице. Селектор может быть любого типа. Если элемент отсутствует метод вернет null.

document.querySelector('#test')
document.querySelector('.element')
document.querySelector('div > p')

Можно сужать поиск и искать не по всему документу, а начиная о конкретного элемента.

element.querySelector('#child-element');

В примере 2.2 у нас несколько элементов с одним и тем же классом, при этом будет найден первый элемент.

Так же у нас есть два элемента с одним и тем же классом, которые находятся в разных родительских элементах. Выберем родительский и от него найдем его дочерний.

Пример 2.2 querySelector

Открыть пример 2.2 в новой вкладке

querySelectorAll()

Если нужно по селектору вернуть коллекцию элементов, то для этого можно использовать метод querySelectorAll().

В результате будет возвращена коллекция NodeList, если элементов нет она будет пустой.

let elements = document.querySelectorAll('ul > li.list'); // Получим коллекцию элементов

Пример 2.3 querySelectorAll

Открыть пример 2.3 в новой вкладке

getElementsByTagName()

Вернуть коллекцию элементов (HTMLCollection) по названию тега.

Пример 2.4 getElementsByTagName()

Открыть пример 2.4 в новой вкладке

getElementsByClassName()

Вернуть коллекцию элементов (HTMLCollection) передав в метод названия классов.

Пример 2.5 getElementsByClassName()

Открыть пример 2.5 в новой вкладке

jquery $()

С использованием jquery поиск элементов упрощается.

Поиск идет по любому селектору который передается в конструктор функции $()

Примеры:

$("*")
$(".myClass")
$("div")
$("#myDiv")
$("div, span, p.myClass")
$("div, p, span")
$("a[hreflang|='en']")

Резюме

Что же выбрать.

Если нужно найти по идентификатору используем getElementById.

Более общий поиск одного элемента querySelector.

Если элементов много по одному селектору тогда нам подойдет querySelectorAll

Этого вполне достаточно.

Примечания

  • querySelectorAll() возвращает статическую коллекцию, при изменении элементов коллекцию нужно обновлять дополнительно.
  • Передав * можно получить всех потомков родителя
  • Все методы getElementsBy* возвращают живую коллекцию.

Исходный код примеров


Возник вопрос или предложение пиши на почту alexsey_89@bk.ru или в Телеграмм канал

Дата публикации: 23 Декабря 2023 г.

Содержание


Наверх

Последнее изменение страницы: 02 Января 2024 г.