2

jqueryの条件に問題があります。

コードをお見せしましょう。

ここに「フィルター」バーがあります:

    <div id="filter_menu">

    <label>Filter By:</label>
    <ul>
        <li>
            <a href="#" tags="all">ALL</a>
        </li>
        <li>
            <a href="#" tags="audio" class="filterFunction">audio</a>
        </li>
        <li>
            <a href="#" tags="video" class="filterFunction">video</a>
        </li>
        <li>
            <a href="#" tags="other" class="filterFunction">other</a>
        </li>
    </ul>
 </div>

そしてここで、バーのオプションでフィルタリングしたいコンテンツリスト:

<ul>
    <li tags="audio video" class="li_item">
       content
    </li>
    <li tags="video" class="li_item">
       content
    </li>
    <li tags="audio" class="li_item">
       content
    </li>
    <li tags="video other" class="li_item">
       content
    </li>
    <li tags="audio other" class="li_item">
       content
    </li>
    <li tags="other" class="li_item">
       content
    </li>
</ul>

jQueryスニペットがあります:

$(".filterFunction").click(function () {

        categoryFilter = $(this).attr("tags");

        $('.item_li').each(function () {
            if ($(this).attr("tags") == categoryFilter) {
                alert('true');
                }
            else {
                alert('false');
                }
            });

     });

ここに問題があります: 属性タグに複数の「タグ」があるコンテンツは決して真ではありません! 「タグ」の1つが属性タグで見つかったときに真になる条件が必要です!!!

誰か助けてください!!

どうもありがとう!そして私の英語でごめんなさい:)

4

2 に答える 2

1

試す

$(".filterFunction").click(function () {

    categoryFilter = $(this).attr("tags");

    $('.li_item').each(function () {
        var tags = $(this).attr("tags").split(' ');
        if ($.inArray(categoryFilter, tags) > -1) {
            alert($(this).attr("tags") + ': true');
        } else {
            alert($(this).attr("tags") + ': false');
        }
    });

});

デモ:フィドル

于 2013-08-19T16:20:49.553 に答える
0

$.each();すべてをループする代わりに、タグ属性を使用して、具体的に探しているキーを持つものを選択してみませんか?

var my_var = 'other';
$('.li_item[tags*="'+my_var+'"]');

次に、それらを具体的に処理します。この概念を改良する複数のセレクタ タイプもあります。例については、 http://www.w3schools.com/jquery/jquery_ref_selectors.aspを参照してください。上記のものは、少なくとも「その他」が含まれるワイルドカード マッチ用のものです。しかし、あなたはそれをすべて伝えることができますが、唯一など..

于 2013-08-19T16:18:37.233 に答える