如何检查从DOM检索的元素仍然存在于DOM中

Val*_*ier 5 javascript jquery

假设我有一个DOM元素,作为事件的参数,例如click.

$(document).click(function() {
    myElement = $(this);
});
Run Code Online (Sandbox Code Playgroud)

我如何稍后检查myElement是否仍在DOM中?我不能使用.length或任何其他类似的东西,因为它此时仍然引用了已保存的元素和DOM的状态,对吧?

Inf*_*pse 6

您可以检查元素父级:

function isInDom(obj) {
    var root = obj.parents('html')[0] 
    return !!(root && root === document.documentElement);
}


if(isInDom(myElement)) {
     ...
}
Run Code Online (Sandbox Code Playgroud)

这是工作小提琴:http://jsfiddle.net/vnxhQ/7/

  • 元素可以具有父体元素而不是文档的一部分:http://jsfiddle.net/doktormolle/vnxhQ/1/ (2认同)

ary*_*ing 6

您可能正在寻找Node.isConnected.