如何检查jQuery选出的对象是否还在DOM中

  如何检查jquery选出的对象是否还在dom树中,而不是从DOM树中删除掉。

<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.2.min.js"></script>
<p>DOM1</p>
<p>DOM2</p>
<script>
    var $cache1 = $("p"); //jQuery选出所有p对象
    $("p:eq(0)").remove(); //jQuery移除第一个p对象
    alert($cache1.size())//输出2,而不是1
    //由于$cache1只是选出对象的一个副本,上面的删除代码不会影响$cache1的长度
    for (var i = 0; i < $cache1.size(); i++) {
        //遍历缓存对象,通过获取parent对象来判断,被移除的dom对象是没有parent对象的
        if ($cache1.eq(i).parent().size() == 0) alert('元素“' + $cache1.eq(i).html() + '”不在DOM树中');
    }
</script>

  也可以使用jQuery的contains方法或者closest方法

if (!jQuery.contains(document, $foo[0])) {
    //Element is detached
}
//或者

$foo.closest(document)

 

加支付宝好友偷能量挖...


原创文章,转载请注明出处:如何检查jQuery选出的对象是否还在DOM中

评论(0)Web开发网
阅读(109)喜欢(0)JavaScript/Ajax开发技巧