2014-04-09 26 views
0

我的頭靠在牆上對此。我試圖清除表,如果所有行tr和列td包含文本「空」。現在它會查找是否只有一行(第一行)包含空值,而不是所有行的組合。問題:如果一行包含null,但其他行不包含,那麼我不想清除我的表。表:檢查所有的行,然後檢查所有的tds與類,採取行動

也因爲我有過濾功能設置,所以我可以檢查該行內的所有td s,而不只是一個td。試圖對行做同樣的事情,我嘗試設置一個變量並使用相同的代碼,但對於tr s,但那也不起作用。

現在我已經安裝它的方式; 1.選擇第一行,2.用.tocheck找到所有的tds(因爲我不想搜索某些tds,所以查找帶有類的tds)。 3.然後添加課程.allare。 4.現在,如果.allare類存在,則清除表格(DataTables)。

$('.mytable>tbody>tr:first').filter(function(){ 
    return $(this).find('td.tocheck').length == $(this).find('td.tocheck:contains("null")').length; 
}).addClass('allare'); 
if ($(".allare")[0]){ 
    var oTable = $('.mytable').dataTable(); 
    oTable.fnClearTable(); 
} 

我檢查第一行的唯一原因是因爲我檢查所有行不僅僅是一個問題。我試圖做的是搜索所有行,而不僅僅是一個或第一個。有關如何使用我已有的其他檢查來搜索所有行的任何想法?

回答

1

試試這個http://jsfiddle.net/aamir/S6hc6/

這將檢查所有表及其<td>,看看是否所有有文字null所有。

繼修改,以滿足你的代碼

$('table').each(function(){ 
    var numberofnull = 0, 
     table = $(this); 

    table.find('td').each(function(){ 
     if($.trim($(this).text()) === "null") numberofnull++; 
    }); 

    if(numberofnull != table.find('td').length) { 
     table.dataTable().fnClearTable(); 
    } 
}); 
+1

太感謝你了!工作得很好,超越了我進入的方向。我希望這會幫助其他人尋找同樣的東西。再次感謝 – Tiger

相關問題