最新消息:欢迎光临!

判断jquery元素是否已在dom中删除

js/jquery findever 3188浏览 0评论

有一个场景,比如:

	
var a=$('a:first');
a.remove();

此时a在dom中是已经被删除的,但是变量a(jquery对象)却没有被删除,这也导致一个问题就是,在没有明确的id或者class等选择器的情况下,程序并不知道这个a是否已经在dom被删除。

想了很久,最后灵光一闪,既然a已经在dom中被删除了,那么其一定没有父元素,即:a.parent().length === 0 !,而a没有在dom中删除的情况下,除非a为html,否则a肯定有父元素的,so机智,为自己点个赞~~~~

转载请注明:Findever » 判断jquery元素是否已在dom中删除

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (2)

  1. 当初我是直接用jq对象里的baseURI来确定是否还存在,因为被删后这个值是null..后来发现不行了...参考了下lz的办法,,发现也不行,,,原来,,如果并不是这个元素被删除,,而是这个元素的祖先被删除的话..该元素的所有父级信息都会保留...a.parent()会返回正确的父级(当然这个父级也不在当前网页上显示了)...除非一直遍历到a元素的真正被删除的父级才会返回null
    ckx3年前 (2016-06-22)回复
    • 你说的是个问题,我觉得这个地方延伸一下就可以完美解决了,直接找a的最上层元素,如a.parents('body'),这样只要中间任何一个父元素删除了都会导致获取到的是空,a.parents('body').length === 0
      findever3年前 (2016-06-22)