用这种方式创建列表筛选器方法不好吗?

Is this a bad way to create a list-filter method?

本文关键字:方法 筛选 方式 创建 列表      更新时间:2023-09-26

我的页面上有这个绑定。该页显示了一个项目表。每一行都有一个与第一列相同的data-navn属性,只是都是小写的。这个列表可能很长,所以我想对它进行某种过滤。我创建了一个文本框,并将这个事件处理程序附加到它上面。

这样做好吗?这似乎有点俗气:)

    $("#filter").bind('keyup', function () {
        var t = $("#filter").val();
        if (t == "") {
            $(".row").show();
        } else {
            $(".row").hide();
            $('.row[data-navn*="' + t + '"]').show();
        }
    });

(我已经在这个页面上使用了jQuery)

这是蛮力,但如果列表足够小,它有效地工作,那么我认为这是好的。如果您开始发现性能滞后,那么您可以考虑进行一些优化。这些是我能马上想到的。

  1. 等待至少键入两个或三个字符后再过滤
  2. 缓存当前显示/隐藏项的列表,这样jQuery就不会在每次传递时都进行完整的查找。