2

假设我有一张桌子:

 <table id="mytable">
    <tr>1</tr>
    <tr>2</tr>
    <tr>3</tr>
    <tr>4</tr>
    <tr>5</tr>
    <tr>6</tr>
    ...
    ...
   </table>

我知道你可以('#mytable').find("tr:gt(n)").remove(); 用来删除第 n 行之后的所有行。但是是否有类似的功能可以让您指定要删除的行范围?说我想将第 2 行删除到第 5 行?还是我只想删除第 2 行?

我是否必须为每一行添加一个 id 才能实现这一点?

谢谢

4

5 回答 5

4

您可以将jQuery slice(start,[end])用于范围,将eq(index)用于单行。

var myRows = $("table tr").slice(1,5);
于 2012-07-30T17:03:12.410 回答
0

这样可以吗?

$('#mytable tr:gt(2):lt(5)').remove();

于 2012-07-30T17:02:42.737 回答
0
$('#mytable').find('tr').filter(function(index){
    return index >=2 && index <=5;
}).remove();
于 2012-07-30T17:03:03.733 回答
0

尝试过滤它的功能:

var rangeFunction = function(index){
  return index >=2 && index <=5;
};

$('#mytable').filter(rangeFunction).remove();

这是常用的方法。如果您只想要简单的线性范围,请尝试:

$("#mytable tr").slice(2, 4).remove();
于 2012-07-30T17:04:26.930 回答
0

您可以尝试使用:eq() 选择器

$("#mytable").find("tr:eq(index)").remove();

要删除一系列行,您可以使用该选择器并遍历它们

于 2012-07-30T17:05:56.420 回答