0

この方法で DOM オブジェクトにアクセスします。

HTML

<div id="mydiv"></div>

JavaScript

alert(mydiv.style.visibility);

どこでもスムーズに動作します。今、いくつかのパラメーターに応じて、ウィンドウからいくつかの要素を削除する状況があります (1 または 2):

JavaScript

if (condition) mydiv.parentNode.removeChild(mydiv);

その後、まだ JavaScript コード内で、その要素に関連する部分が存在する場合にのみ実行します。

JavaScript

if (mydiv) mydiv.style.whatever = "1";

これは IE8 では機能しません。「オブジェクトはこのプロパティまたはメソッドをサポートしていません」というメッセージが返されます。undefined同様に確認しようとしましたが、成功しませんでした [クラッシュする部分はそのif (mydiv)部分です! ]

これに対する最善の解決策は何ですか?コードをどこでも置き換えてチェックしたくありませんdocument.getElementById("mydiv") == null...

4

3 に答える 3

1

あなたstyleもプロパティをチェックしようとしましたか?

if (mydiv && mydiv.style) mydiv.style.whatever = "1";

alert( typeof mydiv )また、ノードが DOM から削除された場合に返されるものを示すことができますか?

編集:

したがって、演算子の IE8 戻り値unknownの型の場合、typeofこのチェックが役立ちます。

if( typeof mydiv !== 'unknown' )
于 2013-08-01T14:57:38.527 に答える
0

変数を定義する方が常に良いと思いますが、

var mydiv = document.getElementById('mydiv');

しかし、あなたの場合、これを回避策として使用できます:

if(typeof mydiv != 'undefined') if(mydiv.parentNode) mydiv.style.whatever = "1";
于 2013-08-01T15:26:11.663 に答える