2014-04-05 34 views
0

我正在製作一些交互式的清單。jQuery(或JS) - 如何從數組中獲取特定顏色的元素?

一個他們做的事情是把一個標題不同的顏色,如果他們都被檢查,就像這樣:

$("input[type='checkbox']").click(function(){ 
if(($(this).attr('name'))=="check1"){ 
    maxchecked1 = $('[name="check1"]').length; 
    curchecked1 = $('[name="check1"]:checked').length; 
    console.log("First check"+curchecked1+"/"+maxchecked1); 
    if(maxchecked1==curchecked1){ 
     console.log("all checked"); 
     $("#head1 a").addClass('ccomplete'); 
    }else{ 
     $("#head1 a").removeClass('ccomplete'); 
    } 
} 

CSS是

.ccomplete{ 
    background:#66BC29 !important; 
    } 

這工作得很好。

我也想做的是做同樣的測試,但對於改變顏色的元素,所以我可以發出信號,當所有的清單完成。

我需要做的是這個

var heads_done = $(".checkhead a").css("background-color" , "#66BC29"); 
var heads_total = $(".checkhead a").length; 

,然後用heads_total比較heads_done什麼。

但是,第一行是不正確的,我不能解決如何做到這一點。我需要的是數組.checkhead [](它與check1是一個元素數組)中具有新顏色的項目數。

有沒有辦法做到這一點?

回答

3

檢查顏色是不可靠的瀏覽器不返回的十六進制值的大部分時間,而現在你設置的顏色,沒有得到它,但檢查的類,而不是

var heads_done = $(".checkhead a.ccomplete").length; 
var heads_total = $(".checkhead a").length; 

if (heads_done == heads_total) alert('all done') 
+0

非常簡單,讓我感到無聊!它效果很好。謝謝! –

+0

@主觀效果 - 不客氣! – adeneo

相關問題