Мне нужно было получить некоторые элементы в форме, чтобы изменить их стиль onchange
<select>
. Я добавил класс new_cat_inputs
к элементам, и я думал, что получу их на document.querySelectorAll()
.
Я пробовал много вещей, но он никогда не работал, я, наконец, использовал:JS - Понимание document.querySelectorAll с именем класса
document.getElementsByClassName("new_cat_inputs")
Это означает, что моя проблема была решена, но я хочу понять.
Вот что я пытался раньше:
// first attempt, as I'd have used document.querySelector() which works this way
document.querySelectorAll(".new_cat_inputs");
// Logs an error which says it can't read the property "querySelectorAll" of null (body)
document.body.querySelectorAll(".new_cat_inputs");
// doesn't get the elements neither as the 1st attempt. Neither with document.body
document.querySelectorAll("label.new_cat_inputs, input.new_cat_inputs, select.new_cat_inputs");
Я прочитал MDN documentation, который часто помогает, но не на этот раз.
Что такое правильный способ выбора нескольких элементов DOM от их класса в всем документе функция document.querySelectorAll()
?
В вашем примере, document.body является 'null', поэтому, возможно, ваш DOM не был загружен, вы пытались поставить свой код в этом событии слушателем:' окно .addEventListener ('DOMContentLoaded', function() { // ваш код }) ' ? –
@boehm_s вы правы, 'window.onload' было недостаточно – AymDev
, но все же ... почему' document.getElementsByClassName() 'работает, а не' document.querySelectorAll() '? @boehm_s – AymDev