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

时间:2013-08-14 11:55:18

标签: jquery object

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

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

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

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

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

1 个答案:

答案 0 :(得分:2)

  

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

如果您想在删除它之后对其执行某些操作。 remove从DOM中删除了该元素,但您可能希望进一步执行某些操作(例如将其添加到DOM中的其他位置或从中检索信息)。

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

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