Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在动态HTML表上应用多重过滤_Javascript_Jquery_Html - Fatal编程技术网

Javascript 在动态HTML表上应用多重过滤

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($('#

我正在尝试使用两个输入标记应用多重筛选。 第一个要求输入员工id,第二个要求输入员工姓名。该表正在从
.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中输入什么?