删除给定索引的子元素?

时间:2010-08-03 19:35:35

标签: jquery

我有这样的布局:

<div id='parent'>

    <div id='row_0'></div>

    <div id='row_1'></div>

    <div id='row_2'></div>

    ... 

    <div id='row_N'></div>
</div>

在某些时候,我想删除某个索引上方的所有div“行”,例如:

for (var index = 1; index < $('#parent').children.length; index++) {
    $('#parent').remove('#row_' + index);
}

在jquery中有更简单的方法吗?像“从索引N开始删除所有孩子”之类的东西?

(上面的for循环不会真正起作用,但如果没有别的办法,那就是我会做的事情)

3 个答案:

答案 0 :(得分:22)

“从元素#parent开始,只需删除(分离)N的所有子女”:

$("#parent").children().slice(N).detach();

如果不会重新插入元素,请使用remove()代替detach(),以便丢弃与已删除元素相关联的数据和事件。

答案 1 :(得分:8)

要删除第0行和第1行,请使用lt selector然后remove选择小于2的行:

$('#parent div:lt(2)').remove();

答案 2 :(得分:4)

这是一个老线程,但我很好奇*为什么没有人提到nth-child

$("#parent > div:nth-child(n + " + index + ")").remove();

*更新:我当时没有足够的代表知道它,但有nth-child个答案被删除。