如何根据多个数据属性过滤搜索结果

时间:2013-08-24 14:55:05

标签: javascript jquery regex search

我正在尝试根据内联数据属性搜索多个数据结果。 但是,我只能弄清楚如何搜索单个数据属性而不是全部。 我该如何做到这一点?

我有什么:http://jsfiddle.net/9SMZC/2/

$("input[type=text]").keyup(function () {
    var filter = $(this).val();

    $("a").each(function () {
        if ($(this).attr("data-event-name").search(new RegExp(filter, "i")) < 0) {
            $(this).hide();
        } else {
            $(this).show();
            matches++;
        }
    });
});

提前致谢!

1 个答案:

答案 0 :(得分:3)

如果您想应用“或”逻辑,可以这样做:

$("input[type=text]").keyup(function () {
    var filter = $(this).val();
    $("a").each(function () {
        var data = $(this).data();
        $(this).hide();
        for (var key in data) {
            if (~data[key].search(new RegExp(filter, "i"))) {
                $(this).show();
                break;
            }
        }
    });
});

Demonstration(尝试搜索“andrew”例如)

我们的想法是获取data对象并迭代属性。为了简化代码(即避免保留布尔值),我也总是隐藏并显示元素何时正常。