Учитывая следующий HTML:document.getElementsByClassName ("СТГ") против document.querySelectorAll ("# Идентификатор тэгу")
<ul id="menu-mobile" >
<li class="menu"><a href="#">Link 1</a></li>
<li class="menu"><a href="#">Link 2</a></li>
<li class="menu"><a href="#">Link 3</a></li>
</ul>
Как предназначаться все <li>
с в лучшем подходе? это с использованием имени класса или идентификатора с querySelectorAll()
?
var menuLink = document.querySelectorAll('#menu-mobile li');
for (var i = 0; i < menuLink.children.length; i++) {
var childElement = menuLink.children[i];
childElement.addEventListener('click', doSomething, false);
}
function doSomething() {
alert("Hello");
}
и
var menuLink = document.getElementsByClassName('menu');
for (var i = 0; i < menuLink.children.length; i++) {
var childElement = menuLink.children[i];
childElement.addEventListener('click', doSomething, false);
}
function doSomething() {
alert("Hello");
}
оба работают.
Благодаря
'getElementsByClassName' приятно, если вам нужно отслеживать динамический набор элементов, поскольку это живая коллекция, но это на самом деле редко, и нетрудно сбить другой' querySelectorAll', когда вам нужен доступ к коллекции. Короче говоря, существует небольшой/редкий вариант использования для 'getElementsByClassName', все остальное должно использоваться' querySelectorAll' – dandavis
@ dandavis, я вижу, большое спасибо –