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 に答える