我正在使用datatables,尝试实现筛选功能,问题是我想从多个复选框中选择需要过滤的列。
所以,如果我选择了一列,结果会显示出4或5列,但我只选择了1列,并且我无法找到问题所在。如下图所示:
[![enter image description here][1]][1]正如您在图中所看到的,我只选择了一个Stantion code,但是我得到了5个可以筛选的列,我应该只有一个。
我的代码:[jsfinddle][2]
addSpliting('');
function addSpliting(val) {
if(val != '') {
$("#test1").DataTable({
destroy: true,
searchPanes: {
layout: 'columns-4',
},
dom: 'Pfrtip',
columnDefs: [{
searchPanes: {
show: true,
},
targets: val
}]
});
}
else {
$("#test1").DataTable({
destroy: true
});
}
}
function setFilters() {
$("table thead tr th").each(function(index) {
var boxes = `<label>
<input type="checkbox" class="checkbox" id="${index}"/>
${$(this).text()}
</label>`
if ($(this).text() != "") $(".checkBoxes").append(boxes);
});
}
setFilters();
$("#createFilter").on("click", function() {
var columFilters = [];
$('.checkbox:checked').each(function () {
columFilters.push(parseInt($(this).attr('id')));
});
addSpliting(columFilters);
});