После переназначения className происходит нечто странное
Здрвствуйте, помогите, уже 3 часа сижу, жесть.
Имеется вот такой код: function pagination(y, x) { var nodeName = 'pd_pagination_' + y; var subNode = document.getElementById(nodeName); var nodes = subNode.getElementsByClassName('pd_pagination_p_cnt_focus'); alert(nodes[0]); // здесь все норм выдет [object HTMLSpanElement] nodes[0].className = 'pd_pagination_p_cnt'; alert(nodes[0]); // а здесь уже undefined } после nodes[0].className = 'pd_pagination_p_cnt'; после замены класса nodes[0] становится undefined и я его не могу дальше использовать что-то я не понимаю что происходит Вот это тоже не пашет: <!DOCTYPE html> <html> <head> </head> <body> <div id="my_div"> <span id="my_span" class="one"></span></div> <script type="text/javascript"> function pageInit() { var nodeName = 'my_div'; var subNode = document.getElementById(nodeName); var nodes = subNode.getElementsByClassName('one'); alert (nodes[0]); // все ОК nodes[0].className = 'two'; alert (nodes[0]); // !!!!!Undefined!!!! } window.onload = pageInit; </script> </body> </html> не понимаю, почему теряется ссылка на ноду изза банального назначения стиля |
Птицын,
Цитата:
|
ага, я понял. а как тогда сохранить ссылку на объект для дальнейшего использования?
|
Птицын,
NodeList преобразовать в нормальный массив строка 20 nodes = [].slice.call(nodes) |
рони,
Разобрался, большое спасибо! |
Птицын, не слушай его, он тебе хуету посоветовал. Вот нормальный вариант:
var nodes = subNode.querySelectorAll('.pd_pagination_p_cnt_focus'); Теперь твой код работает и в IE8, как бонус. |
Часовой пояс GMT +3, время: 02:01. |