Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   Не работает nextSibling (https://javascript.ru/forum/css-html-internet-explorer/17037-ne-rabotaet-nextsibling.html)

LRCenter 03.05.2011 17:10

Не работает nextSibling
 
В ie не работает следующая конструкция:

var comment = document.getElementById('foo').nextSibling;


Есть ли какая-нибудь альтернатива?

Если нет, как можно запретить ie выполнять этот код и дать ему другой код, который бы игнорировали другие браузеры?

Gvozd 03.05.2011 17:29

прекрасно работает
почитайте основы:
http://javascript.ru/tutorial/dom/in...hnyh-brauzerah

LRCenter 03.05.2011 17:42

Прочитал. Так и не понял почему не работает :(

Смотрите.

<html>
<body onload="var comment = document.getElementById('foo').nextSibling; 
var content=document.getElementById('block'); content.innerHTML=comment.textContent || comment.innerText;">

<div id='block'></div>
<!-- Зацепляет js-ом комментарий для вывода после загрузки в тело страницы -->
</html>
<span id='foo'></span><!-- text -->


Этот код прекрасно работает в Опере, Хроме, и Файрфоксе. но отказывается работать в ie, причем как в 6-м так и в 8-ом.

Что не так?

рони 03.05.2011 19:57

LRCenter,

замените comment.textContent || comment.innerText на comment.nodeValue
<html>
<body onload="var comment = document.getElementById('foo').nextSibling;
var content=document.getElementById('block'); content.innerHTML=comment.nodeValue;">
<div id='block'></div>
<!-- Зацепляет js-ом комментарий для вывода после загрузки в тело страницы -->
<span id='foo'></span><!-- text123 -->
</body>
</html>


Часовой пояс GMT +3, время: 20:19.