2013-03-04 69 views
0

我試圖在點擊時將div ID添加到jQuery數組中。在應用「選定」css類的div上也有一個切換。我只想在div上選定的css類處於活動狀態時將id添加到div。除此之外,我在數組中有重複的問題。我以爲我正在使用獨特的功能,但我猜不是。在JQuery中使用數組 - 添加,刪除和重複條目

這裏是我使用的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,如果取消選擇,則將其從數組中刪除。

+0

但是'event.target.id'始終是什麼 – 2013-03-04 04:28:58

回答

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在陣列上,如果它不存在的話,並刪除它,如果它是。我認爲可以在切換事件上完成。

1

$.unique是有據可查的是僅用於DOM元素:從文檔

摘錄:

描述:排序DOM元件的陣列中,代替,其中移除了重複。請注意,這隻適用於DOM元素的數組,而不是字符串或數字。

API參考:http://api.jquery.com/jQuery.unique/

使用$.inArray(),而不是檢查值

相關問題