【问题标题】:Use Input to Filter Table Rows使用输入过滤表行
【发布时间】:2023-03-31 09:25:01
【问题描述】:

在查看了有关此问题的其他一些 SO 问题后,我仍然无法弄清楚如何使其在我的情况下发挥作用。我有一个表格,上面有几行,上面有一个输入控件,我需要根据输入的内容进行过滤。每行都有一个删除按钮,我没有在我的 jsFiddle 中连接。这在我的真实页面上运行良好。

我的主要问题是过滤器本身。它肯定没有正确过滤,我不知道如何考虑删除按钮。当我开始输入过滤器时,我需要做什么,按钮文本(“删除”)将被忽略并且行将正确过滤?

这是一个半工作的jsFiddle,我所说的“半工作”是指,如果你输入字母“r”,所有内容都会被过滤掉,但只有一行。您键入的大多数其他字母都会被过滤掉。

过滤代码

<script>
$("#searchFilter").keyup(function () {
    var data = this.value.split(" ");
    var tbl = $("#table1").find("tr");
    if (this.value == "") {
        tbl.show();
        return;
    }
    tbl.hide();
    tbl.filter(function (i, v) {
        var t = $(this);
        for (var d = 0; d < data.length; d++) {
            if (t.is(":contains('" + data[d] + "')")) {
                return true;
            }
        }
        return false;
    }).show();
});
</script>


多亏了这篇文章,我才得以开始,但现在卡住了……:https://stackoverflow.com/a/17075148/738262



工作代码

jQuery.expr[":"].Contains = jQuery.expr.createPseudo(function(arg) {
    return function( elem ) {
        return jQuery(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0;
    };
});

$("#searchFilter").keyup(function () {
    var data = this.value.split(" ");
    var tbl = $("#table1").find("tr");
    if (this.value == "") {
        tbl.show();
        return;
    }
    tbl.hide();
    tbl.filter(function (i, v) {
        var t = $(this);
        for (var d = 0; d < data.length; d++) {
            if (t.is(":Contains('" + data[d] + "')")) {
                return true;
            }
        }
        return false;
    }).show();
});

【问题讨论】:

    标签: jquery filter


    【解决方案1】:

    :contains 区分大小写。当您输入r 时,它找不到Running,只有Bar

    同样在for 循环中应该是d++

    【讨论】:

    • 这很好知道。我不知道 :contains 区分大小写。非常感激。此外,在我正在查看的另一篇文章中,它有 ++d,我只是在我的问题中重新格式化它时忘记更正它,但它现在已修复。我查找了如何使 :contains 不区分大小写并找到了一种解决方法(尽管我真的不喜欢它,而且我确信有更好的方法,我会继续寻找)。我正在使用该解决方法更新我的 OP。再次感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2023-01-13
    • 2011-04-17
    • 1970-01-01
    • 1970-01-01
    • 2011-05-18
    • 1970-01-01
    • 2011-02-23
    相关资源
    最近更新 更多