2010-08-21 151 views
7

CSS:.divIm { border:1px solid red; }和代碼行var borderColor = $(this).css("border-color")返回""。哪裏不對?或者如果我使用jQuery,試圖獲得計算風格是否正確?jQuery.css()不返回設置爲紅色的邊框顏色

更新: 下面是不希望按預期工作的代碼。

$("div.divIm").mouseover(function() { 
    var borderColor = $(this).css("border-color"); 
    debugger; 
}); 

回答

10

由於四個邊框中的每一個都可以具有不同的顏色,因此.css('border-color')無法工作,返回哪種顏色(即使它們完全相同)。

在大多數的情況下,所有邊框的顏色是一樣的,所以你可以做這樣的:

$('div.divIm').mouseover(function() { 
    var borderColor = $(this).css('border-left-color'); 
    debugger; 
}); 

所以,你得到的左邊框的顏色和應該是夠了你需要。

+0

感謝您的建議,它有幫助! – despero 2010-08-21 20:51:28

-1
var borderColor = $(this).css("border-color") 

你需要表現出比這個多。但如果這是你所有的問題,那麼this沒有定義。

var borderColor = $('.divIm').css("border-color"); 

將是你所需要的。

+0

$( 「div.divIm」)鼠標懸停(函數(){ VAR BORDERCOLOR = $( 「divIm。 」)的CSS(「 邊框顏色」);。 調試器; })。 我剛剛按照您的建議嘗試過,但問題沒有解決。 $(this)返回一個正確的對象。可能有另一種方式... – despero 2010-08-21 20:44:11

+0

在這種情況下,你可以在函數內部使用它。嘗試使用borderColor而不是邊框​​顏色,因爲Gert建議使用 – Galen 2010-08-21 20:53:31

+0

它沒有幫助。戴夫給出了正確的答案。 – despero 2010-08-21 20:58:34

2

您可以使用curStyles jQuery Plugin獲得包含多個計算樣式的計算樣式。

+1

感謝您的回答;使用插件似乎對於這個問題來說太重了。雖然你可能是對的。 – despero 2010-08-21 20:47:17

+0

如果未在元素上設置所請求的樣式屬性,jQuery將返回計算樣式。它使用* $。curCSS(elem,style,force)*,這是一個未記錄的方法。 – 2010-08-21 20:54:44