假设我有一个包含这些行的表:
<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);
这就是我插入新行的方式。考虑第一个答案:如何将类分配给响应文本?
答案 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();
注意如果#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();