1
var myElement = document.querySelector('div.example');// <div..></div>
/*
 * A lot time after, codes executed, whatever
 */
if( myElement.isInDocument )
{
     // Do something
}

「myElement」がまだドキュメントにあるかどうかを知る簡単な方法はありますか?

4

4 に答える 4

1

1つの方法は、使用することですcontains()

var myElement = document.querySelector('div.example');
console.log("elment ", myElement);
console.log("contains before ", document.body.contains(myElement));
myElement.parentNode.removeChild(myElement);
console.log("contains after ", document.body.contains(myElement));

JSFiddle

于 2013-09-13T18:53:14.183 に答える
1

最初に.contains()メソッドが存在するかどうかを確認し、利用可能な場合はそれを使用できます。そうでない場合は、親チェーンをたどってドキュメント オブジェクトを探します。このようなコードを使用する以前のプロジェクトから、ドキュメントを取得するときに (IE の一部のバージョンでは)parentNode が空であることだけに頼ることはできないため、次のようなドキュメントを明示的に確認する必要もあります。

function isInDocument(e) {
    if (document.contains) {
        return document.contains(e);
    } else {
        while (e.parentNode && e !== document) {
            e = e.parentNode;
        }
        return e === document;
    }
}
于 2013-09-13T19:04:50.597 に答える