[英]how do I make an advance filter logic using search filter and checkbox filter in javascript?
我有一個搜索過濾器和一個復選框過濾器,它可以工作,但要單獨使用。 例如,如果我檢查類別,它將進行過濾,但是如果我在搜索框中輸入文本,類別過濾器將消失,就好像它會重新設置過濾器一樣。 就像我說的,它們是單獨工作的:(
這是我的javascript
var input, filter, found, table, tr, td, i, j;
function myFunction() {
input = document.getElementById("myInput");
filter = input.value.toUpperCase();
table = document.getElementById("myTable");
tr = table.getElementsByTagName("tr");
for (i = 0; i < tr.length; i++) {
td = tr[i].getElementsByTagName("td");
for (j = 0; j < td.length; j++) {
if (td[j].innerHTML.toUpperCase().indexOf(filter) > -1) {
found = true;
}
}
if (found) {
tr[i].style.display = "";
found = false;
} else {
if (tr[i].id !== 'tableHeader'){tr[i].style.display = "none";}
}
}
}
$(function() {
$('input[type="checkbox"]').change(function() {
if($('input[type="checkbox"]:checked').length > 0) {
var vals = $('input[type="checkbox"]:checked').map(function() {
return this.value;
}).get();
$('#myTable tr')
.hide() // 1
.filter(function() { // 2
$('#tableHeader').show();
return vals.indexOf($(this).find('td:eq(4)').text()) > -1;
}).show();
} else {
// Show all
$('#myTable tr').show();
}
});
});
您必須分離用於過濾相同視圖的函數。 每個功能都忽略另一個功能的設置(即僅根據其觸發控制設置視圖)。
您需要創建一個將同時考慮這兩個值的邏輯(例如,函數)-搜索輸入和復選框。 然后從這些控件觸發此邏輯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.