从选择jquery中删除项

Remove item from selection jquery

本文关键字:删除 jquery 选择      更新时间:2023-09-26

假设我声明一个空的jQuery选择,$foo

var $foo = $();
console.log($foo.length); // 0

然后,在某个时刻,<div id="foo"></div>被添加到文档中。

$foo = $('#foo');
console.log($foo.length); // 1

我想通过在选择中调用.remove()来删除元素$foo。我希望选择能够反映元素不再在DOM中的事实,但事实并非如此。

$foo.remove();
console.log($foo.length); // 1

在删除有问题的元素的简单情况下,我可以使用.pr()检查元素的parentNode属性

if ( $foo.prop('parentNode') )
   // Exists
else
   // Does not exist

但是如果我删除$foo的父级而不是$foo呢?如果$foo被修改,使得原始选择器与元素不匹配,该怎么办?如何可靠地检测到$foo已不在文档中?最终,有没有办法将其反映在最初的选择中?

您可以使用.find()方法重新搜索找到的jQuery对象:

var length = $(document).find($foo).length;