2012-09-01 34 views
13

我在Firebug控制檯中運行以下代碼。在Firefox中使用jQuery獲取CSS邊框值14.0.1

$('img').css('border', 'solid 2px red').css('border'); 

紅色圖像邊框出現,但它返回一個空字符串,這是爲什麼?

它在Chrome和Safari開發人員工具中正常工作。

更新:jQuery文檔說,獲取CSS值時不支持速記屬性。不過我也試圖與在Firefox沒有運氣(在Chrome和Safari所有的工作)以下

$('img').css('border-style', 'solid').css('border-style'); 
$('img').css('borderStyle', 'solid').css('borderStyle'); 
$('img').css('border', 'solid 2px green').css('borderStyle'); 

回答

14

報價.css文檔。

不支持速記CSS屬性(例如頁邊距,背景,邊框)。例如,如果要檢索渲染邊距,請使用:$(elem).css('marginTop')$(elem).css('marginRight'),依此類推。

對於​​的情況下,你需要使用border-widthborder-styleborder-color相關的屬性。

例如border-color

$('img').css('border-top-color', 'red').css('borderTopColor'); 
$('img').css('border-right-color', 'red').css('borderRightColor'); 
$('img').css('border-bottom-color', 'red').css('borderBottomColor'); 
$('img').css('border-left-color', 'red').css('borderLeftColor'); 
+0

我也試過'$( 'IMG')的CSS( '邊框樣式', '實')的CSS( '邊框樣式')。 '和'$('img').css('borderStyle','solid').css('borderStyle')',但是這對Firefox也不起作用。我也試過'$('img').css('border','solid 2px green')。css('borderStyle')' – Mike

+0

'borderStyle'也是一個簡寫 – Alexander

+0

@Mike,它的工作原理是檢查屬性錯字你在那裏。它是'邊框頂部樣式'而不是'邊框樣式頂部' – Alexander

3

在Firefox支持的屬性:

'border-top-color' 
'border-right-color' 
'border-bottom-color' 
'border-left-color' 

'border-top-width' 
'border-right-width' 
'border-bottom-width' 
'border-left-width' 

'border-top-style' 
'border-right-style' 
'border-bottom-style' 
'border-left-style' 

是支持longhands :)乾杯!請享用!!!

在大多數情況下,您仍然可以使用簡寫來設置邊框。

如果你確信它們是相同像做

var borderString = $('img').css('border-top-width') + " " 
       + $('img').css('border-top-style') + " " 
       + $('img').css('border-top-color'); 

得到像「2px solid rgb(255,255,255)'

+0

像一個專業的行爲,這是什麼? – totten

+0

@EnesUnal只是爲了確保'border-color''''''''''''''''''''''邊框樣式'等也不支持,檢查其他評論,他嘗試了其中的一個:)對不起,如果這讓你煩惱。 – sabithpocker

+0

我不怪你,我正在編輯你的答案。 – totten

0

也許你要使用多個屬性 使用以下語法

字符串$('img').css({'border':'solid 2px red','color':'green'})

速記屬性not supp砸在Jquery。

+0

@Mike是你的工作? – Codegiant

0
var objImage = $('img').css('border', 'solid 2px red'); 
objImage.css('border-top-color'); 
objImage.css('border-top-width'); 
objImage.css('border-top-style'); 

不只是爲top,它也適用於rightleft,並bottom

這也是一個非工作代碼:

objImage.css('border-style'); 

由於bordermargin,CSS的padding性質是seperately編輯。如果border-topborder-left不同,瀏覽器可能會產生困惑,當您剛剛詢問border時,瀏覽器必須返回。

4

試試這個:

var border = $('img').css('border', '2px solid red')[0].style.border; 

FIDDLE

+0

+1這簡直是太棒了,而且非常簡單:) – sabithpocker

+0

平原JavaScript通常是? – adeneo

相關問題