通过EQ过滤删除元素不会从jQuery对象中删除该元素

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过EQ过滤删除元素不会从jQuery对象中删除该元素相关的知识,希望对你有一定的参考价值。

我使用此代码来匹配元素列表:

var previewItems = preview.find('.items').children().not('.heads');

一切正常,但是当我尝试通过选择它的EQ来删除其中一个项目时,从DOM中删除后,它会保留在匹配元素的jQuery对象中。

previewItems.eq(index).remove();
alert(previewItems.eq(index)); // [object Object]

为什么jQuery将元素保存在匹配元素的组中?

答案

为什么jQuery将元素保存在匹配元素的组中?

如果你想删除它后想要做一些事情。 remove从DOM中删除了元素,但您可能希望进一步做某事(比如在DOM中的其他地方添加它或从中检索信息)。

您可以使用slicenotfilter将其从集合中删除(或者更准确地说:除了slice / not省略的元素之外,您可以获得具有所有相同元素的新对象):

previewItems.eq(index).remove();
previewItems = previewItems.not(previewItems[index]);

以上是关于通过EQ过滤删除元素不会从jQuery对象中删除该元素的主要内容,如果未能解决你的问题,请参考以下文章

如何从 jquery 对象映射中过滤唯一的数据属性值

jQuery学习—jQuery对象的过滤

jQuery元素过滤

JQuery 删除子元素

添加到数据库后从选择中删除一个元素(过滤)

js怎么从数组中删除指定值(不是指定位置)的元素?