我有这样的布局:
<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循环不会真正起作用,但如果没有别的办法,那就是我会做的事情)
答案 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
个答案被删除。