Я понимаю, что при нормальных обстоятельствах вы должны использовать querySelector для выбора одного элемента и querySelectorAll для нескольких. Однако я с удивлением обнаружил, что querySelectorAll не работает с одним элементом. Я ожидал, что он будет работать с одним или более. Я не могу найти ничего, что говорит, что не должен работать только с одним, поэтому я спрашиваю здесь, если это нормально и согласно спецификации?Невозможно использовать querySelectorAll для одного элемента?
HTML:
<div class="top container">
<div class="pod" draggable="true">big</div>
<div class="pod" draggable="true">small</div>
<div class="pod" draggable="true">happy</div>
<div class="pod" draggable="true">rich</div>
<div class="pod" draggable="true">fast</div>
</div>
JS:
function dragStart(e) {
console.log("drag started");
e.target.style.opacity = "0.5";
}
работы с этой функцией (dragStart называется):
var topPods = document.querySelector(".top");
topPods.addEventListener("dragstart", dragStart);
Но не работает с этим (функция dragStart не):
var topPods = document.querySelectorAll(".top");
topPods.addEventListener("dragstart", dragStart);
'document.querySelectorAll [0] === document.querySelector ("." Сверху)' - бывший возвращает массив-подобный объект, последний возвращает один элемент. –
См. Также [Развернуть итерируемый элемент или неистребимый элемент в массив без проверки элемента .length] (http://stackoverflow.com/questions/40198807/expand-an-iterable-element-or-non-iterable-element -into-a-array-without-checkin) – guest271314