我有一個對象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