我目前正在编写手风琴并遇到与IE 和 FF 之间的 nextSibling 区别中描述的相同问题?- 特别是微软的 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 的新手;)