@4sadly

Почему когда я хочу задать значение переменной ничего не работает?

Когда пишу
document.getElementsByClassName('nosub');
хром дает подсказкуHTMLCollection(2) [tr.nosub, tr.nosub]
, а когда пишу
var a = document.getElementsByClassName('nosub');
undefined
хочу задать стиль коллекции элементов
  • Вопрос задан
  • 350 просмотров
Решения вопроса 3
@Comsequent
Пишу потихоньку.
зачем создавать дополнительную переменную?
for(var i=0; i<document.getElementsByClassName('nosub').length; i++){
document.getElementsByClassName('nosub')[i].classList.add('yourClass');
}
Ответ написан
Комментировать
@historydev Куратор тега JavaScript
Острая аллергия на анимешников
function setStyles(selector) {
   selector = document.querySelectorAll(selector);
   selector.forEach(el => {
      el.style.background = '#000'
   })
}


Update:
или "супер" методика классов:

function setStyles(selector) {
   selector = document.querySelectorAll(selector);
   selector.forEach(el => {
      el.setAttribute('class', 'myClass');
   })
}
Ответ написан
Комментировать
sergiks
@sergiks Куратор тега JavaScript
♬♬
var a = document.getElementsByClassName('nosub');назначает переменной a значение: коллекцию HTML элементов. Если следующей строкой в консоли введёте просто a, появится «подсказка» такая же как в первом варианте.

Чтобы сделать что-то с каждым элементом коллекции, надо её перебрать. Циклом for, или методами массивов, например, forEach():
[ ...document.getElementsByClassName('nosub')].forEach( el => el.style.display = "none" );


Тут [...HTMLCollection] это один из способов сделать из коллекции нормальный массив со всеми его методами, включая forEach(). Подробнее см. spread syntax
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Forusta
Вы пишите: "хром даёт подсказку" - речь о вводе кода в консоли хрома? Если да, то следует понять один момент: если вы вводите выражение, которое возвращает какой-либо результат, он будет выведен в консоли ниже. Если же у выражения нет результата, то будет undefined. Присваивание данных в переменную как раз второй случай. После присваивания напишите имя вашей переменной - и увидите тот же результат, что в вашем первом примере
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы