
Если вы читаете эту статью, значит, вы должны быть знакомы с DOM (объектной моделью документа). Итак, давайте начнем с селекторов DOM, не теряя времени на объяснение, что такое DOM.
Селекторы DOM, как следует из названия, используются для выбора элементов HTML в документе с помощью JavaScript. Существует 5 способов выбора элементов в модели DOM с помощью селекторов.
- getElementsByTagName ()
- getElementsByClassName ()
- getElementById ()
- querySelector ()
- querySelectorAll ()
Все эти методы являются свойствами объекта документа. Итак, чтобы использовать один, мы должны добавить к этим элементам префикс объекта документа как,
document.getElementsByTagName() document.getElementsByClassName() document.getElementById() document.querySelector() document.querySelectorAll()
Прежде чем мы начнем с этих селекторов, давайте сначала рассмотрим образец HTML-документа, чтобы все эти операции выбора можно было выполнять с помощью этой страницы.
<!-- Sample HTML Page -->
<!DOCTYPE html>
<html lang="en">
<head>
<title>Document Object Model</title>
</head>
<body>
<h1 class="heading">DOM Selectors</h1>
<ul>
<li id="item">getElementsByTagName</li>
<li class="selectors">getElementsByClassName</li>
<li class="selectors">getElementById</li>
<li id="item">querySelector</li>
<li id="item">querySelectorAll</li>
</ul>
</body>
</html>
Приведенный выше HTML-документ не требует пояснений, поскольку он очень прост. И я буду использовать веб-консоль, чтобы лучше все объяснить. Давайте начнем.
getElementsByTagName
Этот метод возвращает все элементы, соответствующие указанному имени тега.

document.getElementsByTagName('h1')возвращает набор элементов, соответствующих имени тега h1. А поскольку у нас всего один элемент h1, список содержит только один элемент.- Используя [0] в качестве индекса, мы можем получить доступ к первому элементу в списке, который равен
<h1 class="heading">DOM Selectors</h1>. document.getElementsByTagName('li')возвращает список из 5 элементов, поскольку на нашей странице есть пять тегов li.- Любой отдельный элемент можно выбрать с помощью его индекса, например
document.getElementsByTagName('li')[0].
getElementsByClassName
Этот метод возвращает все элементы, соответствующие указанному имени класса.

- Этот селектор очень похож на
getElementsByTagName, за исключением того, что s выбор основан на имени класса, а не имени тега. Вы можете увидеть несколько примеров на изображении выше.
getElementById
Здесь выбор основан на имени идентификатора. И это похоже на селектор имени тега и имени класса, но есть разница в том, сколько элементов выбирает этот селектор. Во всех перечисленных выше селекторах возвращается список всех совпадающих элементов. Но этот селектор возвращает только первый совпавший элемент, игнорируя остальные.

- Как видите, несмотря на то, что у нас есть 3 элемента li с идентификатором item, мы получили только первый элемент li с идентификатором элемент. Остальные все элементы игнорируются.
И в этом
getElementByIdотличается отgetElementsByTagNameиgetElementsByClassName.getElementByIdвозвращает элемент, как только он находит совпадение. Также вы можете заметить различие в названии селектора: слово элемент употребляется в единственном числе вgetElementById, а во множественном числе в других селекторахgetElementsByTagName&getElementsByClassName.
querySelector
Он возвращает первый элемент, который соответствует указанному селектору CSS в документе.

document.querySelector('li')возвращает первый элемент, соответствующий селектору CSSli. Остальные элементы игнорируются.document.querySelector('.heading')возвращает первый элемент, соответствующий селектору CSS.heading.document.querySelector('#item')возвращает первый элемент, соответствующий селектору CSS#heading.- Как видите, мы можем использовать все виды селекторов CSS в методе
querySelector, который мы будем использовать в обычном файле CSS.
Обратите внимание, что вы должны использовать селекторы CSS, а не обычные селекторы HTML в качестве параметра.
document.querySelector('.className')действителен, аdocument.querySelector('className')недействителен. Поэтому вам нужно использовать формат, используемый в селекторах CSS.
querySelectorAll
Этот метод возвращает все элементы, которые соответствуют указанному селектору CSS в документе.

document.querySelectorAll('.heading')возвращает список всех элементов, соответствующих указанному селектору CSS. Поскольку у нас есть только один элемент под именем класса.heading, список содержит один элемент. И к нему можно получить доступ по его index.- Точно так же
document.querySelectorAll('#item')возвращает список из 3 элементов, соответствующих селектору CSS. Доступ к отдельным элементам осуществляется с помощью индекса.
Обратите внимание, что два элемента не должны иметь одинаковый идентификатор в качестве хорошей практики. И я использовал тот же идентификатор для некоторых элементов, чтобы лучше объяснить ситуацию. Таким образом, вы можете следовать рекомендуемому способу не использовать один и тот же идентификатор более чем для одного элемента.
Это все, что касается селекторов DOM. Мы поговорим о некоторых других методах DOM в следующей статье. Спасибо. Удачного кодирования!