3

バックエンドのデータベースからのクエリからの動的コンテンツで満たされたテーブルがあります。trゼロのみを含むものを非表示にします。

これが私のテーブルの様子です。

<table id="table1" " cellspacing="0" style="width: 800px">
<thead id="tablehead">
</thead>
<tbody id="tabledata">
<tr class="odd">
<td>0</td>
<td>0</td>
<td>0</td>
<td>0.00%</td>
<td>0.00%</td>
<td>$0.00</td>
<td>$0.00</td>
<td>$0.00</td>
<td>$0.00</td>
<td>$0.00</td>
<td>$0.00</td>
</tr>
</tbody>

ここで、の最初の3つが0tdの場合、その行を効果的に非表示にするクラスをに追加します。jQueryを使用してこれを行うにはどうすればよいですか?tbody==tr

編集: 申し訳ありませんが、私が試したことを追加するのを忘れました。td以下は、すべてのを収集できるかどうかを確認しようとしたテストスクリプトです。

$(document).ready(function() {
    $("#table1 td").filter(function() {
        return $(this).text == 0;
    }).css("text-color", "red");

    });
4

1 に答える 1

6

あなたはこれを行うことができます :

$('tr').each(function(){
    var tr = $(this);
    if (tr.find('td:eq(0)').text()=="0"
        && tr.find('td:eq(1)').text()=="0"
        && tr.find('td:eq(2)').text()=="0"
    ) tr.addClass('hidden');
});

デモンストレーション(隠されたクラスは色を赤に変えます、それはより明確です...)

必要に応じて、テキストをトリミングしたり、解析したりする必要がある場合があります。

より複雑なテストの場合は、セルの内容の配列を直接操作すると便利な場合があります。あなたはそれを使用してそれを得ることができます

var celltexts = tr.find('td').map(function(){return $(this).text()}).toArray();
于 2012-11-16T19:16:40.290 に答える