В настоящее время я пишу аккордеон и сталкиваюсь с той же проблемой, как описано в nextSibling разница между IE и FF? - в частности, различия между Microsoft nextSibling/nextElementSibling и реализованный всеми остальными.
По разным причинам использование jquery не является опцией. Также не все мои пользователи MS обновлены до MSIE9
В настоящее время я использую следующий код для решения проблемы:
// tr is a TR doc element at entry....
while (nthRow--) {
// for Chrome, FF tr=tr.nextElementSibling; for MSIE...tr=tr.nextSibling;
tr=tr.nextElementSibling ? tr.nextElementSibling : tr=tr.nextSibling;
if (!tr || tr.nodeName != "TR") {
break;
}
tr.style.display="";
}
Кажется, что я делаю то, что ожидаю в MSIE6, FF и Chrome, т.е. элементы nthRow TR ниже начального TR становятся видимыми (ранее style.display = "none" ).
Но может ли это иметь неожиданные побочные эффекты?
(Я немного новичок с Javascript;)