0

以简单的形式,我的 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/

请帮我从表中删除重复项....

4

1 回答 1

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;
    }
});

样本

于 2013-03-10T17:00:27.887 回答