我目前正在编写一个手风琴,并遇到nextSibling difference between IE and FF?中描述的相同问题 - 特别是微软的nextSibling/nextElementSibling和其他人实现的问题之间的差异。nextElementSibling/nextSibling的可移植性
由于各种原因,使用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和铬 - 即在初始TR之下的nthR TR元素变得可见(先前的style.display =“none”)。
但是,这可能会有意想不到的副作用?
(我有点用javascript一个新手的;)
是 - 这似乎更好的解决方案 - 实际上是相同的epascarello的答案,但是这是一个有点更强大 – symcbean
...只有当它不是(el && el.nodeType!== 1); ? – symcbean
@symcbean:是的。固定。接得好。 :O) – user113716