2012-11-16 42 views
3

我有一張表,裏面充滿了來自後端數據庫查詢的動態內容。我想隱藏僅包含零的任何tr使用jQuery隱藏基於表中`td`的值的`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> 

現在,如果前三個td的在tbody== 0,那麼我想一個類添加到tr,將有效地隱藏該行。我將如何去做這個使用jQuery?

編輯: 對不起忘了加什麼,我都試過了。下面是一個測試腳本我想看看我是否能收集所有td

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

    }); 
+0

增加了我試過的東西。對不起忘了把它放。 –

+0

什麼是'.css(「text-color」'? – Ian

+0

@Ian我只是想看看'filter'函數是否會選擇正確的'td' –

回答

7

你可以這樣做:

$('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'); 
}); 

Demonstration(隱藏類改變顏色爲紅色,它的更清晰......)

根據您的需要,您可能需要trim的文本,或者給parse他們。

對於更復雜的測試,您可能會發現直接使用單元格內容的數組很有用。你可以使用它

var celltexts = tr.find('td').map(function(){return $(this).text()}).toArray(); 
+0

這正是我需要的,非常感謝你! –