表:检查所有行,然后检查所有tds与类,采取行动

时间:2014-04-09 14:18:11

标签: jquery datatables html-table

在这上面撞我的头。如果所有行tr和列td都包含文本" null",我会尝试清除表格。现在它查找是否只有一行(第一行)包含null,而不是所有行组合。问题:如果一行包含null但其他行不包含,那么该怎么办?在这种情况下,我不想清除我的表格。

另外我设置过滤器功能的原因是我可以检查该行中的所有td,而不仅仅是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 个答案:

答案 0 :(得分: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();
    }
});