我有一个对象dom
其中有一个名为changeCss
这改变任何元素的CSS属性:代码如下:为什么javascript函数不正常
var Dom = {
changeCss : function(element, properties){
if(typeof (properties) === "object"){
var properties_name = Object.keys(properties),
properties_value = [];
for (var i = 0; i < properties_name.length ; i++ ){
var a = properties_name[i],
b = properties[a];
properties_value[i] = b;
element.setAttribute("style", a+":" + b+";");
};
}else{
throw 'properties of '+ element +" should be object";
}
},
}
所以从这个代码,你会了解我想如何改变任何元素的CSS,这是完美的工作。但我面临的问题是,如果我写这段代码:
var x = document.getElementById("some_html_tag_id");
Dom.changeCss(x, {"width": "100px", "height":"80px"});
那么样式元素只包含height:80px
不width:100px
!如何添加所有这些样式属性?
感谢
安妮
除了不支持样式对象的setAttribute的旧版IE之外,它应该可以工作。 – slebetman
啊,对不起。我把setAttribute与setProperty混淆了。编辑.. – slebetman
当谈论跨浏览器方法时,可能有必要提一下,当使用'element.style [a] = ...时,FF需要骆驼式的属性名称,其他浏览器同时接受驼峰式和连字符式形成。 – Teemu