如何在单个元素上创建多个.setAttribute

时间:2010-11-25 15:41:18

标签: javascript dom attributes

我的代码是

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

我还想添加一个与bgcolor颜色相同的边框颜色。 我的问题是如何在设置bgcolor后为当前样式添加另一种样式?

我trien put

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

在第一个setAttribute之后但它删除了bgcolor ang仅设置了边框颜色..

8 个答案:

答案 0 :(得分:6)

不要为此使用属性。 IE中的属性实现不正确,几乎不是您需要的。此外,指定style属性将清除现有的内联样式,包括脚本设置的样式。请改用通用支持的style属性:

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

答案 1 :(得分:1)

可以完成:

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

或者你可以试试:

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

答案 2 :(得分:1)

您可以使用style.cssText添加到(+ =)或替换(=)内联样式规则。

附加时,原始样式中存在的任何属性都将替换为新值。 添加了新属性,原始但未替换的任何属性都保留原样。

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

答案 3 :(得分:0)

使用此

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

答案 4 :(得分:0)

变量和硬代码值:

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;');

答案 5 :(得分:0)

您可以使用对象并设置多属性! 例如,如果使用标签和

let attGroup={
id:'demo',
class:'style',
href:'#'
};

for(let key in attGroup){
 elem.setAttribute(`${key}`,`${attGroup[key]}`);
}
<a id="demo" class="style" href="#">Link</a>

答案 6 :(得分:-1)

只是连接它们:

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

答案 7 :(得分:-1)

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

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

elem.setAttribute( 'style', atValue );