jQuery删除行范围

时间:2011-03-15 17:49:48

标签: javascript jquery range row

假设我有一个包含这些行的表:

<table>
    <tr id="before_dynamic_rows"></tr>
    <tr id="after_dynamic_rows"></tr>
</table>

使用jQuery,我在after_dynamic_rows行之前插入自动生成的行(搜索结果)。如何删除一系列行,即 - 您猜它 - ID为before_dynamic_rows的行与行after_dynamic_rows之间的行? (为了能够在插入它们之后,将它们移除并插入不同的。)

var response = ajax.responseText;
$('#after_dynamic_rows').before(response);

这就是我插入新行的方式。考虑第一个答案:如何将类分配给响应文本?

3 个答案:

答案 0 :(得分:2)

我会为这些添加的行分配一个类,以便于选择,但是您可以选择所有tr子项并使用“not”方法删除您想要保留的两个。

$("table tr").not("#before_dynamic_rows").not("#after_dynamic_rows").remove();

答案 1 :(得分:2)

此答案基于对该问题的字面解释,其中包含应删除的唯一行是位于#before_dynamic_rows元素和#after_dynamic_rows之间的行。

请参阅:http://jsfiddle.net/7wBzd/

上的工作版本
var $rows = $("tr");
$("tr:lt("+ $rows.index($("#after_dynamic_rows")) +"):gt("+ $rows.index($("#before_dynamic_rows")) +")").remove();

答案 2 :(得分:2)

$("table tr:gt(0)").not("#after_dynamic_rows").remove();

Try it out here.

注意如果#after_dynamic_rows是最后一行,那么您可以这样做:

$("table tr:gt(0)").not(":last").remove();

或:

$("table tr:gt(0):not(:last)").remove();

...如果#before_dynamic_rows之前有行,只需执行:

$("table tr:not(#before_dynamic_rows, #after_dynamic_rows)").remove();