Jquery删除表重复一些扭曲

时间:2013-03-10 16:42:06

标签: javascript jquery html ruby-on-rails

以简单的形式,我的html表是这样的:

Article | description | links | price


<table>
    <tr>
        <td>
        </td>
        OC 90
        <td>
            ololooo
        </td>       
        <td>
        </td> 
        <td>
            123
        </td>
    </tr>
    <tr>
        <td>
            OC90
        </td>
        <td>
            some other ololo
        </td>
        <td>
            <a href="">link</a>
        </td> 
        <td>
            123
        </td>
    </tr>
    <tr>
        <td>
            OC 90
        </td>
        <td>    
            other other oloooloo
        </td>
        <td>
        </td> 
        <td>
            321
        </td>
    </tr>
</table>

但我该怎么办,我从表格中删除重复,但是!!!只有当第一列(也是大写并且在检查时删除自由空间)和最后一个td(所以文章和价格相同),但主要的麻烦是在表格中留下这样的行,在第三列有链接的...

之后,我的桌子必须看起来:

<table>
    <tr>
        <td>
            OC90
        </td>
        <td>
            some other ololo
        </td>
        <td>
            <a href="">link</a>
        </td> 
        <td>
            123
        </td>
    </tr>
    <tr>
        <td>
            OC 90
        </td>
        <td>    
            other other oloooloo
        </td>
        <td>
        </td> 
        <td>
            321
        </td>
    </tr>
</table>

我尝试过这样的事情:

var seen = {};
    $('table tr').each(function() {
        var tr = $(this).clone();
        if(tr.not(':input')){   //tried for input, is not strange)


                tr.find("td:eq(2)").remove(); 
                tr.find("td:eq(3)").remove(); 

               // tr.find("td:eq(2)").remove();
                var txt = tr.text().toLowerCase().replace(/\s+/g, '');;        
                if (seen[txt])
                    $(this).remove();
                else
                    seen[txt] = true;
            }
        }
    });

但这对我没有帮助....

也是完整版表:

http://jsfiddle.net/STrm5/1/

请帮我删除表格中的副本....

1 个答案:

答案 0 :(得分:0)

试试这个:

var seen = {};
$('#table tr').each(function () {
    var tr = $(this).clone();
    if (tr.not(':input')) {

        tr.find("td:eq(1)").remove();
        tr.find("td:eq(1)").remove();

        var txt = tr.text().toLowerCase().replace(/\s+/g, '');
        if (seen[txt]) $(this).remove();
        else seen[txt] = true;
    }
});

<强> Sample