在IE 6/7中将style
属性设置为元素不起作用。但在其他浏览器中,它运行良好。
我正在使用的代码是
var box_style = 'width: 200px; background:red';
document.getElementById('box').setAttribute("style", box_style);
这适用于除IE 6/7之外的所有其他浏览器
我做错了吗?或者有没有解决这个问题的方法?请帮忙!
答案 0 :(得分:12)
最终答案是cssText
:
el.style.cssText = 'width: 200px; background:red';
旁注是
避免在任何地方设置/ getAttribute!
答案 1 :(得分:5)
尝试将其更改为
var box = document.getElementById('box');
box.style.width = '200px';
box.style.backgroundColor = 'red';
答案 2 :(得分:3)
Internet Explorer 6-7的setAttribute / getAttribute实现方式已损坏。不要使用它们。
基本上,setAttribute(对于IE)看起来像这样:
function (attribute, value) {
this[attribute] = value;
}
因此,如果属性名称和属性名称之间没有1:1关系,则会中断。
单独设置属性,或者,这通常更好,设置className并在外部样式表中定义样式。
答案 3 :(得分:0)
您可以使用与IE-8和IE-7兼容的setAttribute
var el = document.getElementById('id' + id);
el.setAttribute('fontWeight','bold');
el.setAttribute('color','red');
el.setAttribute('fontSize','150%');
el.setAttribute('bgColor','red');
为一个元素分配一个类,我建议按照
el.className = "class-name";
答案 4 :(得分:-1)
或者您可以使用PrototypeJS框架(http://www.prototypejs.org),它允许您执行以下操作:
$('box').setStyle({
width: '200px',
backgroundColor : 'red'
});