2011-10-06 81 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()