比较两个表行并删除匹配

时间:2012-09-24 09:10:19

标签: jquery

有人可以帮我在JQuery吗? 我的网站上有两个表 leftTable rightTable ,其中包含相同的列名。 leftTable 我从数据库填充,但 rightTable 它只包含一些行。我想要做的是不在 leftTable 中显示(或删除) rightTable 中存在的那些行!

我试过这个:

$("#tableLeft tr").each(function(){
    if($(this).find("td")[0].innerHTML == $("#tableRight tr").find("td")[0].innerHTML)
    {
        $(this).remove;
    }
});

2 个答案:

答案 0 :(得分:2)

只是一个想法

$(function(){
    $('#btn').on('click', function(e){
        $('#right_table tbody tr').each(function(){
            var row=$(this).html();
            $('#left_table tbody tr').each(function(){
                if(row==$(this).html()) $(this).remove();
            });
        });
    });
});​

DEMO

我之前已经提到过这个想法只是因为你没有提供任何代码(HTML),所以请记住,如果两个表都有相同的(类/ id),那么它们应该是相同的(类/ id)。

答案 1 :(得分:2)

我想你有这样的事情:

<table id="T1">

    <tr><td>111</td></tr>
    <tr><td>222</td></tr>
    <tr><td>333</td></tr>

</table>


<table id="T2">

    <tr><td>444</td></tr>
    <tr><td>111</td></tr>
    <tr><td>333</td></tr>

</table>

要从id =“T2”的表中删除行,您可以执行以下操作:

$('#T1 tr').each(function(){

    var currentRowHTML=$(this).html();

    $('#T2 tr').each(function(){
        if($(this).html()===currentRowHTML){
            $(this).remove();
        }
    });
});