基于单击的div在JQuery数组中添加和删除值时出现问题

基于单击的div在JQuery数组中添加和删除值时出现问题,jquery,html,forms,Jquery,Html,Forms,以下是我的JQuery: var skinCare=[]; $('.skinCare').click(function(){ if($.inArray(event.target.id, skinCare) == -1){ var value = event.target.id; skinCare.push(value); } var index = skinCare.indexOf(value); if($(this).css('

以下是我的JQuery:

var skinCare=[];

$('.skinCare').click(function(){
    if($.inArray(event.target.id, skinCare) == -1){
        var value = event.target.id;
        skinCare.push(value);
    }
    var index = skinCare.indexOf(value);
    if($(this).css('background-color') == 'rgb(255, 255, 255)'){
        skinCare.splice(skinCare.indexOf(index), 1);
    }
});
$('html').click(function(){
    alert(skinCare);
});
这是我显示给用户点击的HTML:

<a href="#item4" class="panel"><div class="nextButton"></div></a>
                <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>


现在,我已经设置了JQuery,这样,如果正在单击的div的背景颜色是某种颜色(单击时由css类设置),它就会在数组中添加或删除一个值skinCare。我完全开放的任何选择,工作,但是,不需要做它的颜色。我只希望在单击div时向JQuery数组添加一个值,然后在再次单击时从数组中删除该值。

对多个HTML元素使用相同的
id
是不正确的。这很可能是您的问题的原因


另外,请审阅我感谢您审阅了@roXon的评论。

您已经问了5个问题,但没有说“谢谢”,接受甚至没有给那些花时间帮助您的人留下建设性的评论。请务必回顾您以前的问题,留下反馈,并接受所有对解决您的问题最有帮助的答案。对此表示抱歉!我回去复习了我以前的问题。我没有意识到我可以接受,因为我试图投票支持一些答案,但它说我没有足够的声誉。我去掉了重复的id,但由于某种原因,当我取消选择一个div(再次单击它)时,它只会带走最后添加的值。这一点很好。有什么东西会改变div的背景色吗?上面的jQuery代码似乎没有做到这一点。或者可能是这样的,在
var index=skinCare.indexOf(value)行中
,除非
event.target.id
不在
skinare
中,否则
值似乎不会初始化。实际上我对jQuery不太了解,所以我可能会有误解。是的,有一个.click函数可以改变颜色。even.target.id是指我单击的div的id,它是传递到数组skinCare中的值。因此,索引只是护肤品中的一个位置。我记得,当
var
周围最近的块不是函数定义时,
var
在何处生效,或者至少过去是非常奇怪的。尽管如此,当您第二次单击div时,
value
不会得到更新,因为
value
只在
if
块中得到更新,这对吗
if($.inArray(event.target.id,skinCare)=-1){var value=event.target.id;..
Yes我相信您是正确的。value变量仅使用if语句更新。我将尝试使用value将其放在正确的位置。