2012-04-26 75 views
2

我想做一些有點尷尬的事情,我的僞代碼不起作用,但應該解釋我正在嘗試做什麼。我有4個單選按鈕組,共6個獨立的div,共有24個無線電。每個div都是特定的背景顏色。當選中特定div中的單選按鈕時,我需要獲取所選單選按鈕所在div的顏色,並將其存儲在一個變量中,以準備將其應用於將在下一個創建的元素中。jQuery獲得父元素的css背景顏色值

$("#voucher_selection_container input:radio").change(function(){ 
    //var color = $(this).parent("div").css("background-color"); 
    //alert(color); 
    $("#voucher_customisation_container").slideDown(600); 
    //$("#voucher_customisation_container .voucher_box").css("background-color", color); 
}); 

任何幫助,將不勝感激。 :) 謝謝。

+1

你能提供HTML嗎? – xanderer 2012-04-26 13:03:36

+0

這是對的嗎? http://jsfiddle.net/5ttMj/1/如果您將'parent'更改爲'closest',它可以工作:http://jsfiddle.net/5ttMj/2/ – 2012-04-26 13:24:47

回答

7

嘗試closest()找到下一個匹配的元素了DOM樹

var color = $(this).closest("div").css("background-color"); 
+0

嗨,您是對的。父母會給我一個字段集,我需要parent()。parent(),顯然這是不對的,最接近完美的作品。謝謝。 – 2012-04-26 13:11:22

+0

是啊,有點棘手 - 有時DOM不匹配HTML – izb 2012-04-26 13:15:31

+0

請注意,您可以使用.parents('div')以及 – 2012-04-26 13:46:30

0
$('input:radio').change(function(){ 
var backColor = $(this).parent().css("background-color"); 
}); 
2
$("#voucher_selection_container input:radio").change(function(){ 

    var color = $(this).parent("div").css("backgroundColor"); 

}); 
0

通過使用父功能,您就可以訪問父DIV

$('radio').click(function(){ 
    $(this).parent(); 
}); 
0
$("#voucher_selection_container input:radio").change(function(){ 
    var color = $(this).parent().css("background-color"); 
    alert(color); 
    //$("#voucher_customisation_container").slideDown(600); 
    $("#voucher_customisation_container .voucher_box").css("background-color", color); 
}); 

試試這個