2011-05-05 78 views
3

我想檢測一個div是否有邊界。如果是這樣,我想將邊框顏色更改爲灰色。這是我的代碼,但不起作用。如何在javascript中獲取div的邊框寬度/顏色?

var ele = document.get...; 
if(ele.style.borderColor) 
{ 
    ele.style.borderColor='666666'; 
} 

ele.style.borderColor始終爲空。 順便說一句,我不能在這裏使用JQuery。 有人可以幫忙嗎?

回答

4
var ele = document.getElementById('a'), 
    style = window.getComputedStyle(ele, null), 
    sides = ['top', 'right', 'bottom', 'left'], 
    maxBorder = 0; 

for (var i = 0, length = sides.length; i < length; i++) { 
    maxBorder = Math.max(maxBorder, parseInt(style.getPropertyValue('border-' + sides[i] + '-width'))); 
} 

if (maxBorder) { 
    ele.style.borderColor = '#666666'; 
} 

jsFiddle

+0

感謝的人,但是,'風格= window.getComputedStyle(ele,null)'總是爲null,只是在chrome,osx,最新版本中測試過。 – icespace 2011-05-05 02:40:54

+0

@icespace哪個Chrome?我只是在OS X上的Chrome 11中測試它,它工作正常。 – alex 2011-05-05 02:50:26

+0

是的,是的,它工作正常。抱歉。我想我的腳本中有一些其他錯誤。非常感謝你。 8-) – icespace 2011-05-05 02:52:45

0

我想你會得到一個空值,因爲你在屬性中間缺少連字符。 「border-color」

既然你不能在這裏使用jquery,我會查看所有的CSS邊框屬性,以確定它是否有邊框,如邊框樣式,邊框寬度和邊框顏色。

+0

嘗試在chrome中遇到'ele.style.border-color'遇到錯誤。 – icespace 2011-05-05 02:41:55

+0

訪問像那樣的對象屬性時不能使用連字符。 – alex 2012-02-21 12:45:02

1

您可以設置邊框顏色,並且不要嘗試讀取任何屬性。

如果元素有沒有邊框,設置顏色不會有任何影響。

+0

好的想法,我會嘗試。謝謝。 – icespace 2011-05-05 05:27:59

1

所做的錯誤是,你沒有指定顏色的十六進制代碼
前的「#」符號所以你必須做出變化不大: ele.style.borderColor='#666666';

相關問題