1

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

我有什么: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++;
        }
    });
});

提前致谢!

4

1 回答 1

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;
            }
        }
    });
});

演示(例如尝试搜索“andrew”)

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

于 2013-08-24T14:59:58.483 回答