私は現在、アコーディオンを作成しており、nextSibling difference between IE and FF?に記載されている問題と同じ問題、特にMicrosoftのnextSibling/nextElementSiblingとほかの人たちによって実装された問題との違いに遭遇しています。nextElementSibling/nextSiblingの移植性
さまざまな理由から、jqueryの使用はオプションではありません。 NORは、現在、私はこの問題を回避するには、次のコードを使用していMSIE9
にアップグレードするすべての私のMSのユーザーを取得している:
// 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で初心者のビットんだ;)Internet Explorerがそうではない
はい - よりよい解決策と思われるもの - epascarelloの答えとして効果的に同じことをこれ一つでありますもう少し堅牢な – symcbean
...しないでください(el && el.nodeType!== 1); ? – symcbean
@シムビーン:そうです。一定。良いキャッチ。 :o) – user113716