Я пытаюсь получить некоторые элементы с именем класса «special». Я нашел следующий скрипт онлайн, но он возвращает только пустой массив.getElementsByClassName & IE
Кто-нибудь видит, что не так?
getElementsByClassName = function (node, classname){
var a = [],
re = new RegExp('\b' + classname + '\b'),
els = node.getElementsByTagName("*"),
l = els.length,
i;
for (i = 0; i < l; i += 1) {
if (re.test(els[i].className)) {
a.push(els[i]);
}
}
console.log(a)
return a;
}
var wrap = document.getElementById('wrap');
getElementsByClassName(wrap, 'special')
обертка содержит 22 детей, последний из которых является <p class="special">Lorem</p>
, и в поджигатель я получаю весь путь вниз, чтобы найти узел с именем класса, но затем он прыгает a.push. Я потерялся!
редактировать: в порядке, так что делает работу сейчас, он все равно будет интересно, хотя бы знать, почему console.log (а) возвращает пустой массив
что им пытаются сделать, это: если (wrap.getElementsByClassName («ар»).длина) { do .. } он отлично работает, если FF, но не в том, потому что он не поддерживает getElementsByClassName – patad
«ar a = new Array();» line ... не должно быть «var a = new Array();» или еще лучше, "var a = [];" – scunliffe
Запрещено использование jQuery или Sizzle? –