i ont un objet dom
qui ont une propriété nommée changeCss
qui change le css sur tout élément: le code est le suivant:pourquoi la fonction javascript ne fonctionne pas correctement
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";
}
},
}
donc de ce code, vous serez comprendre comment je veux changer le CSS de n'importe quel élément, et cela fonctionne parfaitement. Mais le problème que je suis confronté est que si je suis en train d'écrire ce code:
var x = document.getElementById("some_html_tag_id");
Dom.changeCss(x, {"width": "100px", "height":"80px"});
alors l'élément de style se composent ne height:80px
pas width:100px
! comment ajouter toutes ces propriétés de style?
grâce
anni
Il devrait fonctionner à l'exception des anciennes versions d'IE qui ne prennent pas en charge setAttribute pour les objets de style. – slebetman
Ah, désolé. J'ai setAttribute confus avec setProperty. Edited .. – slebetman
Quand on parle de méthodes cross-browser, il est peut-être bon de mentionner que FF requiert un nom de propriété camel-cased en utilisant 'element.style [a] = ...', les autres navigateurs acceptent aussi bien camel-case que trait d'union forme. – Teemu