如何使多个.setAttribute一个单独的元素

问题描述:

我的代码是如何使多个.setAttribute一个单独的元素

elem.setAttribute('style','background-color:' + l_DivBgcolor); 

,我想也是一个边框颜色相同的增加将bgcolor的颜色.. 我的问题是我怎么添加其他样式设置为bgcolor之后的当前样式?

elem.setAttribute('style','border-color:' + l_DivBgcolor + '; background-color:' + l_DivBgcolor + ';'); 

,或者你可以:

我把三烯

elem.setAttribute('style','border-color:' + l_DivBgcolor ); 

第一的setAttribute之后,但它消除了BGCOLOR ANG只设置边框的颜色..

不要使用属性为了这。属性在IE中不正确的实现,并且几乎不是你所需要的。此外,分配给style属性将消除现有的内联样式,包括由脚本设置的样式。使用普遍支持style属性,而不是:

elem.style.backgroundColor = l_DivBgcolor; 
elem.style.borderColor = l_DivBgcolor; 

是可以做到的请尝试:

elem.style.display.borderColor = lDivBgcolor; 
elem.style.display.backgroundColor = lDivBgcolor; 
+1

在特殊模式,第一种方法将不会在IE 6或7或8的工作,同时也将消除其他浏览器中的现有内联样式。第二种方法是唯一明智的方法,除了通过插入`display.`来解决问题。 – 2010-11-25 16:20:09

+0

*点头*我并不是说这是使用内联样式的方式,只需简单地取出原始代码并调整它以适合所问的问题,但您完全正确,不是这样做的方式。后者......好吧,自从我这么做以来已经有一段时间了,出于某种原因,我认为它确实需要那里的展示父母......不知道为什么。 – Arantor 2010-11-25 16:46:08

只需将它们连接起来:

elem.setAttribute('style','background-color:' + l_DivBgcolor + ';border-color:' + l_DivBgcolor + ';'); 

由于要更改的样式属性而不是元素的样式属性直接您可以连接的样式在一个字符串

var atValue = 'border-color:' + l_DivBgcolor + ';'; 
atValue += 'background-color:' + l_DivBgcolor + ';'; 

elem.setAttribute('style', atValue); 

您可以添加到(+ =)或更换(=)与style.cssText内嵌样式规则。

当追加时,原始样式中存在的任何属性都将替换为新值。 新的属性被添加,并且任何在原始中但不在替换中的都保留原样。

elem.style.cssText+=';background-color:'+ l_DivBgcolor+';border-color:'+l_DivBgcolor; 

用途本

elem.setAttribute('style','background-color:' + l_DivBgcolor+ ' border-color:' + l_DivBgcolor); 

变量和硬编码值:

element.setAttribute('style','top:' + t + '; left:' + l + '; width:' + w + '; height:' + h + ';'); 
element.setAttribute('style','top: 0; left: 0 ; right: 0; bottom: 0; opacity: 0.7;');