2017-01-23 74 views
0

只有漫游才有可能通过DataTables下拉过滤器中的tr类名来过滤记录?基于tr类名称的DataTables下拉列表过滤器

例I有一个下拉如下:

    <div> 
        <select> 
         <option value="Default">All</option> 
         <option value="Unread">Unread</option> 
        </select> 
       </div> 

和TR如下:

<tr class="unread"> 
    <td>test1</<td> 
</tr> 
<tr class="read"> 
    <td>test2</<td> 
</tr> 
<tr class="unread"> 
    <td>test3</<td> 
</tr> 

当下拉选择的未读,它将调用下面js代码来滤除tr with“read”class and only only show with the following with“unread”class name:

 $.fn.dataTable.ext.search.push(
     function (settings, data, dataIndex) { 
      var test = settings.nTable.id; 
     } 
    ); 

回答

0

您几乎在那里寻找添加到search,但您需要参考其中的表api。这似乎工作:

$(function() { 
    $.fn.dataTable.ext.search.push(
     function(settings, data, dataIndex) { 
      if ($("#selector").val() !== "Default") { 
       var api = new $.fn.dataTable.Api(settings); 
       return api.row(dataIndex).nodes().to$().hasClass("unread"); 
      } else { 
       return true; 
      } 
     } 
    ); 
    var example = $("#example").DataTable(); 
    $("#selector").on("change", function() { 
     example.draw(); 
    }); 
}); 

而这里是一个工作example,希望有所帮助。