jQuery按条件删除元素

时间:2010-10-28 07:07:22

标签: javascript jquery html

我在表格中有一些tr元素:

<table>
<tr id="tr_level_1">...</tr>
<tr id="tr_level_2">...</tr>
<tr id="tr_level_3">...</tr>
<tr id="tr_level_4">...</tr>
<tr id="tr_level_5">...</tr>
</table>

在Javascript中我有下一个变量:

var levels = 3;

我想删除id中的数字大于levels的所有tr。如果levels大于tr的数量 - 最后添加tr。

很多。

5 个答案:

答案 0 :(得分:4)

Working demo

试试这个:

var levels = 3;
$("table tr:gt("+(levels-1)+")").remove();

我减1,因为这个表达式(“gt”:大于)是从0开始的索引。

对于问题的第二部分,请尝试以下方法:

http://www.jsfiddle.net/dactivo/fADHL/

if($("table tr").length<levels){
 //the code here for less than levels
}
else
{
 $("table tr:gt("+(levels-1)+")").remove();    
}

答案 1 :(得分:2)

我认为这应该完成答案

var levels = 3;
var $trs = $("table tr");
var currentLevels = $trs.length;
if (currentLevels > levels) {
    $trs.filter(":gt(" + (levels - 1) + ")").remove();
} else if (currentLevels < levels) {
    var t = "";
    for (i = (currentLevels + 1); i <= levels; i++) {
        t += '<tr id="tr_level_' + i + '"><td>' + i + '</td></tr>';
    }
    $trs.parent().after(t);
}

http://jsfiddle.net/c6XWN/1/&lt; - levels = 10

http://jsfiddle.net/c6XWN/2/&lt; - levels = 5

http://jsfiddle.net/c6XWN/3/&lt; - levels = 3

祝你好运!

答案 2 :(得分:1)

试试这个

var total = $("#table").find('tr').length;
var levels = 3;
if(levels<=total) {
   for(levels=levels;levels<=total;levels++) {
       $("#tr_level_"+levels).remove();
   }
}
else {
   $("#table").append("<tr id=\"tr_level_"+total+1+"\">..</tr>");
   // this will add the element with tr_level_6 at the end 

}

答案 3 :(得分:1)

也许这个:

function editTr(inVal) {
selector = new RegExp("\d")
var lastID = selector.exec($("table tr").last().attr("id"));
if (lastID > inVal) {
    $("table tr").each(function () {
        if (selector.exec($(this).attr("id")) > inVal) {
            $(this).remove();
        }
    });
}
else if (lastID < inVal) {
    for (x=lastID;x<=inVal;x++) {
        $("table").append("<tr id=\"tr_level_"+x+"\"></tr>")
    }
}
else {
    return null
}

}

答案 4 :(得分:0)

var levels = 5;
var lastTr = $('#ranks_percentages tr:last').attr('id');
lastTr = lastTr.split('_');
var lastLevel = lastTr[1];
if (levels < lastLevel) {
   //removing
} else {
   //adding 
}