私は現在アコーディオンを書いていて、次の説明で説明されているのと同じ問題に遭遇しています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の初心者です;)