我有两个具有相同类名的Jquery数据表。搜索功能在一个表中工作,而不在另一个表中。请查看我的代码并提供相关建议。
Jquery的
$('.dataTable th.searchClass').each( function () {
var title= $(this).text();
$(this).append( '<br/><input type="text" class="searchClassIcon" placeholder="Search '+title+'" />' );
});
/*applying dataTable*/
var table=$('.tab-section table.dataTable').DataTable({
"bJQueryUI": true,
"bSort": false,
"sPaginationType": "full_numbers",
"bPaginate":false,
"bFilter":true,
"sType":"string"
});
// Apply the search
table.columns().eq(0).each( function ( colIdx ) {
$( 'input', table.column( colIdx ).header() ).on( 'keyup change', function () {
//console.log("search");
table.column( colIdx ).search( this.value ).draw();
} );
答案 0 :(得分:1)
您正在将dataTable函数应用于多个元素,并将这些元素分配给变量“table”。所以你的搜索功能需要指定它正在查看哪个表,否则它将默认为第一个表。
我能想到的最好的方法是在不使用表变量的情况下应用您的事件,然后在事件中使用$(this).parents('table').dataTable()
来引用正在访问的特定表。
答案 1 :(得分:1)
您需要做的就是区分两个数据表。而是使用类,为表使用特定的 id 属性。并且,通过使用id属性,您可以调用其相应的搜索功能。