仅过滤jQuery过滤器中的特定列

时间:2019-02-05 16:09:53

标签: javascript jquery html web filter

我正在为朋友的网页修改一个jquery过滤器,他正在使用w3schools示例(https://www.w3schools.com/Bootstrap/bootstrap_filters.asp)中的该过滤器,但是在这种情况下jquery循环了所有列,我只需要过滤一个表的特定列。我如何“忽略”其他列并通过特定列过滤行?

这是一个jsfiddle示例(https://jsfiddle.net/lucas2500/w7atphe3/),我想按第一列(名字)过滤所有行。

$(document).ready(function(){
    $("#myInput").on("keyup", function() {
        var value = $(this).val().toLowerCase();
        $("#myTable tr").filter(function() {
            $(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)
        });
    });
});

很抱歉出现语法错误。

1 个答案:

答案 0 :(得分:0)

应用过滤器时,它当前正在检查整行的.text()

$(this).text().toLowerCase().indexOf(value) > -1

其中this是每个tr

您可以替换此部分以检查特定列,例如仅检查第一列:

$(this).find("td:eq(0)").text().toLowerCase().indexOf(value) > -1

给予:

$("#myInput").on("keyup", function() {
    var value = $(this).val().toLowerCase();
    $("#myTable tr").filter(function() {
        $(this).toggle($(this).find("td:eq(0)").text().toLowerCase().indexOf(value) > -1)
    });
});

还有其他方法可以执行此操作,但这与您的原始逻辑/代码很接近。

更新的小提琴:https://jsfiddle.net/8owLdc2t/