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(記事と価格が同じ)の場合のみですが、主な問題は、3列目にリンクがある行をテーブルに残すことです...

その後、私のテーブルは次のようになります。

<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 に答える