2011-10-06 58 views
0

我用下面的jQuery来上一个DataTable,它工作正常过滤行搜索项的行...删除不包含与jQuery

yuiDtFilter = function(tableDivId, filter) { 
    //custom jQuery function defines case-insensitive fn:Contains, use default fn:contains for case-sensitive search 
    jQuery.expr[':'].Contains = function(a,i,m){ 
     return jQuery(a).text().toUpperCase().indexOf(m[3].toUpperCase())>=0; 
    }; 
    $("#" + tableDivId + " .yui-dt-data").find('tr').hide(); 
    $("#" + tableDivId + " .yui-dt-data").find('td:Contains("' + filter + '")').parents('tr').show(); 
} 

但是我有一个需要过滤器工作以相反的方式。我需要它删除不与匹配搜索条件的行。

我发现我需要使用'not()',但是我花了大部分时间徒劳无功地尝试使用它(使用我可以找到的每个示例)。

我已经尝试了许多变化 -

$("#" + tableDivId + " .yui-dt-data") 
    .find(:not(('td:Contains("' + filter + '")')) 
    .parents('tr').remove(); 

可以用我的代码为出发点,谁能给我个忙吗?

回答

2

尝试

$("#" + tableDivId + " .yui-dt-data").find('td').not(':contains("' + filter + '")').parents('tr').remove(); 

$("#" + tableDivId + " .yui-dt-data").find('td:not(:contains("' + filter + '"))').parents('tr').remove()