2012-10-11 158 views
0

我想要做的是在點擊提交按鈕時更改父元素的背景顏色。如何使用jQuery更改父元素的背景顏色?

所以對我也曾經嘗試這樣的代碼:

  $("input.submit").click(function(){ 
       var className = $(this).parent().attr("class"); 
       $(className).animate({backgroundColor: '#FFB95E'}, 1000); 
       $(className).animate({borderColor: '#C97200'}, 1000); 
      }); 

但我永遠無法得到的父元素的類名。有幾個提交按鈕都有不同的父元素,這就是爲什麼我需要這樣做。

任何人都可以請幫忙嗎?

非常感謝

彼得

+0

提交按鈕上的點擊事件有點不穩定。嘗試調用表單提交功能,而不是... – MassivePenguin

回答

1

您的標記將有助於解決這個問題的一個例子,但你似乎可以用正確的代碼來獲得父元素。

我會建議你使用像螢火蟲調試器,看看有什麼$(this).parent()[0]是或只是alert($(this).parent()[0]);如果它不返回"object"你知道你沒有一個父元素,如果你有一個父元素使用alert($(this).parent()[0].outerHTML);怎麼看如果你有正確的元素。

最後$(className)是多餘的,沒有任何作用,只是像下面的getter那樣鏈接elemnt命令,或者直接使用變量,它已經是一個jQuery對象。

$(this).parent().animate({backgroundColor: '#FFB95E'}, 1000).animate({borderColor: '#C97200'}, 1000); 
+0

當我使用alert($(this).parent()[0]它說它的undefined。但是有一個父類的名稱爲「timer」的父元素? –

+0

嘗試使用'$(this).parents (「:first」)[0]'注意到's'會導航到DOM,並且檢查你的上下文中的'this'對象是否是你認爲的元素。 – DeMeNteD

0

爲什麼不乾脆

$(this).parent() 
     .animate({backgroundColor: '#FFB95E', 
       borderColor: '#C97200'}, 1000); 

你不需要獲得類的父的設置背景顏色。但是,如果我上的顏色默認情況下不工作,不誤有生你需要一些插件來處理過渡

+0

我會給出一個去,動畫功能是一個插件。感謝:) –

相關問題