@Gagatyn
Самоучка

Как работать с булевыми методами?

Здравствуйте. Верно ли я делаю:
var el = ['div', 'span', 'ul', 'li', 'p', 'script', 'h1', 'h2'];
for (var j = 0; j < el.length; j++) {
 var d = document.getElementsByTagName(el[j]);
 if (d.hasAttribute('class'))
            console.log(d.className);
}

Если верно и нет ошибок, то хром выдает ошибку TypeError: d.hasAttribute is not a function, так же выдавало и с document.hasChildNodes()
Как мне правильно сделать?
  • Вопрос задан
  • 170 просмотров
Решения вопроса 2
devellopah
@devellopah
d - это NodeList (список узлов), не имеющий метода hasAttribute()

попробуй так (es5 версия)
var tags = ['div', 'span', 'ul', 'li', 'p', 'script', 'h1', 'h2'];
var forEach = Array.prototype.forEach

tags.map(function(tag) {
  var list = document.querySelectorAll(tag);

  forEach.call(list, function(el) {
    el.className && console.log(el.className)
  })
})
Ответ написан
Negwereth
@Negwereth
lvivcss.com.ua
1. Что такое el[j]?
2. В d вы сохраняете выборку, то ест коллекцию, но обращаетесь к ней как к одному элементу.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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