В настоящее время я пишу аккордеон и сталкиваюсь с той же проблемой, которая описана в Разница 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 - то есть элементы TR nthRow ниже исходного TR становятся видимыми (ранее style.display = "none").
Но может ли это иметь неожиданные побочные эффекты?
(Я немного новичок в Javascript;)