Javascript 在动态HTML表上应用多重过滤
我正在尝试使用两个输入标记应用多重筛选。 第一个要求输入员工id,第二个要求输入员工姓名。该表正在从Javascript 在动态HTML表上应用多重过滤,javascript,jquery,html,Javascript,Jquery,Html,我正在尝试使用两个输入标记应用多重筛选。 第一个要求输入员工id,第二个要求输入员工姓名。该表正在从.xlsx文件中读取数据 这是我的过滤代码 $rows = $("#tblData tr"); $("#empId", "#empName").on("input", function () { var val1 = $.trim($('#empId').val()).replace(/ +/g, ' ').toLowerCase(); var val2 = $.trim($('#
.xlsx
文件中读取数据
这是我的过滤代码
$rows = $("#tblData tr");
$("#empId", "#empName").on("input", function () {
var val1 = $.trim($('#empId').val()).replace(/ +/g, ' ').toLowerCase();
var val2 = $.trim($('#empName').val()).replace(/ +/g, ' ').toLowerCase();
$rows.show().filter(function () {
var text1 = $(this).find("td:nth-child(1)").text().replace(/\s+/g, ' ').toLowerCase();
var text2 = $(this).find("td:nth-child(2)").text().replace(/\s+/g, ' ').toLowerCase();
return !~text1.indexOf(val1) || !~text2.indexOf(val2);
}).hide();
});
我听说我应该将语句
td:nth child(1)
和td:nth child(2)
更改为行的索引,而不是硬编码。您的筛选功能正在工作
但是,输入
事件处理程序被分配给有语法错误的选择器
$(“empId”,“empName”)
应该是$(“empId”,“empName”)
注意引号 然后我建议更简洁一些。。。使用。但是你的方式,使用是有效的
$(文档).ready(函数(){
$rows=$(“#tblData tr”);
$(“#empId,#empName”)。在(“输入”,函数()上{
var val1=$('#empId').val().trim().toLowerCase();
var val2=$('#empName').val().trim().toLowerCase();
控制台日志(val1+“|”+val2);
$rows.show().filter(函数()){
var text1=$(this.find(“td:nth child(1)”).text().trim().toLowerCase();
var text2=$(this.find(“td:nth child(2)”).text().trim().toLowerCase();
return!~text1.indexOf(val1)| |!~text2.indexOf(val2);
}).hide();
});
});代码>
#tblData tr td{
边框:1px纯黑;
高度:1米;
宽度:14em;
}
ID:
名称:
约翰·多伊总统
0002简·多伊秘书
0157Ali会计
$(this).find(“td”).eq(myVariable).text().etchetera..
其中myVariable
是一个基于零的整数。这里只有两个,但你可以循环但你真的在寻求建议吗,还是被某个特定的bug绊住了?如果代码有效,并且希望得到建议,请查找。我应该在myVariable中输入什么?