0

クリックされたときに、div id を jquery 配列に追加しようとしています。「選択された」css クラスを適用する div のトグルもあります。選択したcssクラスがdivでアクティブな場合にのみ、idをdivに追加したい。これに加えて、配列内の重複に問題があります。独自機能をちゃんと使っていると思っていたのですが、そうではないようです。

私が使用しているHTMLは次のとおりです。

<div class="content">
            <a href="#item3" class="panel multi"><div class="circle skinCare multi" id="acne" style="top:10px;left:265px"><div class="inner_circle" id="acne">ACNE/</br>BLEMISHES</div></div></a>
            <a href="#item3" class="panel multi"><div class="circle skinCare multi" id="dry_skin" style="top:255px;left:10px"><div class="inner_circle" id="dry_skin">DRY SKIN</div></div></a>
            <a href="#item3" class="panel multi"><div class="circle skinCare multi" id="oily_skin" style="top:90px;left:100px"><div class="inner_circle" id="oily_skin">OILY SKIN/LARGE PORES</div></div></a>
            <a href="#item3" class="panel multi"><div class="circle skinCare multi" id="aging" style="top:90px;left:430px"><div class="inner_circle" id="aging">WRINKLES/</br>AGING</div></div></a>
            <a href="#item3" class="panel multi"><div class="circle skinCare multi" id="irritation" style="top:255px;left:510px"><div class="inner_circle" id="irritation">SENSATIVE SKIN/IRRITATION</div></div></a>
            <a href="#item3" class="panel multi"><div class="circle skinCare multi" id="dark_spots" style="top:430px;left:100px"><div class="inner_circle" id="dark_spots">DARK SPOTS</div></div></a>
        </div>

jQuery は次のとおりです。

var skinCare=[];
$('.skinCare').click(function(){
    //var index = "Skin Care";
    if($('div.skinCare').css('background-color') == 'rgb(255, 0, 0)'){
        skinCare.push(event.target.id);

    }
    var skinCare1 = $.unique(skinCare);
    alert(skinCare1);

});

これをアラートに出力します。

acne, aging, acne, acne, irritation

何かが選択されている場合は配列にIDを追加し、選択が解除されている場合は配列から削除する必要があります。

4

2 に答える 2

1

$.uniqueDOM要素専用であることが十分に文書化されています:

ドキュメントからの抜粋:

説明: 重複を削除して、DOM 要素の配列を適切な場所に並べ替えます。これは、文字列や数値ではなく、DOM 要素の配列に対してのみ機能することに注意してください。

API リファレンス: http://api.jquery.com/jQuery.unique/

$.inArray()代わりに使用して値を確認します

于 2013-03-04T04:32:10.733 に答える
0

これを試して:

var skinCare=[];
$('.skinCare').on("click", function(){
    //var index = "Skin Care";
    var id = $(this).attr('id')
    if ($.inArray(id, skinCare) == -1)
        skinCare.push(id);
    else
        skinCare.splice( $.inArray(id, skinCare), 1 );

    alert(skinCare);
});

div の id がまだ存在しない場合は配列にプッシュし、存在する場合は削除します。トグルイベントでもできると思います。

于 2013-03-04T04:29:00.107 に答える