2011-05-05 111 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';