我有一个包含三列的 HTML 表 - (姓名、年龄、城市)。我正在尝试实现“MS Excel”就像功能一样,我可以在其中过滤多个列。
尽管过滤器是单独工作的,但当用户同时在多个输入字段中输入文本时,它们会发生故障。例如,仅输入名称即可正常工作,但输入名称和城市将完全排除名称过滤器。
function nameSearch() {
var input_name, input_age, input_city, filter, table, tr, td, i, txtValue_name, txtValue_age, txtValue_city;
input_name = document.getElementById("name-search");
input_age = document.getElementById("age-search");
input_city = document.getElementById("city-search");
filter_name = input_name.value.toUpperCase();
filter_age = input_age.value.toUpperCase();
filter_city = input_city.value.toUpperCase();
table = document.getElementById("custom-table");
tr = table.getElementsByTagName("tr");
for (i = 0; i < tr.length; i++) {
td_name = tr[i].getElementsByTagName("td")[0];
if (td_name) {
txtValue_name = td_name.textContent || td_name.innerText;
if (txtValue_name.toUpperCase().indexOf(filter_name) > -1) {
tr[i].style.display = "";
} else {
tr[i].style.display = "none";
}
}
}
}
function ageSearch() {
var input_name, input_age, input_city, filter, table, tr, td, i, txtValue_name, txtValue_age, txtValue_city;
input_name = document.getElementById("name-search");
input_age = document.getElementById("age-search");
input_city = document.getElementById("city-search");
filter_name = input_name.value.toUpperCase();
filter_age = input_age.value.toUpperCase();
filter_city = input_city.value.toUpperCase();
table = document.getElementById("custom-table");
tr = table.getElementsByTagName("tr");
for (i = 0; i < tr.length; i++) {
td_age = tr[i].getElementsByTagName("td")[1];
if (td_age) {
txtValue_age = td_age.textContent || td_age.innerText;
if (txtValue_age.toUpperCase().indexOf(filter_age) > -1) {
tr[i].style.display = "";
} else {
tr[i].style.display = "none";
}
}
}
}
而不是拥有三个单独的“onkeyup”;函数时,我还尝试将所有输入映射到单个函数,但这仍然没有多大帮助。
鸿蒙传说
慕田峪7331174
MMMHUHU
杨魅力
相关分类