我想编写一个递归函数来删除表中的行。
我有要保留的行数,在该号码之后我想删除所有行。
例如: 我有5号,所以前5行需要留下,其余的需要去。 (使用行id)
代码:
<table id="table">
<tr id="tr1"/>
<tr id="tr2"/>
<tr id="tr3"/>
<tr id="tr4"/>
<tr id="tr5"/>
<tr id="tr6"/>
<tr id="tr7"/>
<tr id="tr8"/>
</table>
我不知道我会有多少行,这就是为什么我认为我需要一个递归解决方案。
答案 0 :(得分:2)
您可以使用几种不同的jQuery过滤器方法:
var numRows=5;
$('#table tr').slice(numRows).remove();
OR
$('#table tr:gt(' + (numRows-1) + ')').remove();
的 DEMO 强>
参考文献:
答案 1 :(得分:1)
您可以使用此
$(document).ready(function(){
var deleteAfter = 5
$.each($("#table tr"),function(key,value){
//do your conditional here
if(key > deleteAfter-1){
value.remove();
}
});
alert("now the table row is "+$("#table tr").length);
});
这有效jsfiddle
对不起,如果你想使用id作为输入,请改用
$(document).ready(function () {
//define the id first
var deleteAfter = $("#tr5");
var elementNo;
$.each($("#table tr"), function (key, value) {
if (this.id == deleteAfter.attr("id")){
elementNo = key;
}
});
$.each($("#table tr"), function (key, value) {
//do your conditional here
if (key > elementNo) {
value.remove();
}
});
alert("now the table row is " + $("#table tr").length);
});
我更新了jsfiddle
答案 2 :(得分:1)
你可以使用:gt()选择器,它选择大于索引的所有元素,然后你可以删除它。
$(document).ready(function () {
var index = 4; // set index 4, so want to remove 5 elements( 0 to 4)
$('#table tr:gt('+index+')').remove();
});