2010-11-25 15 views
2

mon code estComment faire de multiples .setAttribute sur un seul élément

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

et je veux aussi ajouter une couleur de bordure même à la couleur du bgcolor .. mon problème est de savoir comment puis-je ajouter une autre style au style actuel après la définition d'un bgcolor?

i Trine mettre

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

après la première setAttribute mais il supprime l'ang bgcolor définir la couleur de la bordure seulement ..

Répondre

6

Ne pas utiliser un attribut pour ça. Les attributs sont incorrectement implémentés dans IE et ne sont presque jamais ce dont vous avez besoin. En outre, l'affectation à l'attribut style supprimera les styles en ligne existants, y compris ceux définis par le script. Utilisez plutôt la propriété style universellement pris en charge:

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

peut se faire avec:

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

Ou vous pourriez essayer:

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

La première approche ne fonctionnera pas dans IE 6 ou 7, ou 8 en mode bizarreries, et sera également effacez les styles en ligne existants dans d'autres navigateurs. La deuxième approche est la seule manière sensée de le faire, sauf que vous avez tort en insérant 'display.'. –

+0

* hochements de tête * Je ne suis pas en train de suggérer que c'est la façon d'utiliser le style en ligne, en prenant simplement le code original et en l'ajustant à la question posée, mais vous avez tout à fait raison. Ce dernier ... eh bien, cela faisait un moment que je l'avais fait, et pour une raison que j'ignorais, je pensais qu'il avait besoin de l'affichage du parent là-bas ... je ne sais pas pourquoi. – Arantor

-1

Il suffit de les concaténer:

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

Puisque vous changez l'attribut de style et non les propriétés de style de l'élément directement, vous pouvez concaténer les styles dans une chaîne

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

elem.setAttribute('style', atValue); 
1

Vous pouvez ajouter (+ =) ou remplacer (=) des règles de style en ligne avec style.cssText. Lors de l'ajout, toutes les propriétés existant dans le style d'origine sont remplacées par les nouvelles valeurs. De nouvelles propriétés sont ajoutées et toutes celles de l'original, mais pas celles du remplacement, sont laissées telles quelles.

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

Pourquoi le feriez-vous plutôt que d'utiliser simplement les propriétés de l'objet 'style'? –

0

Utilisez cette

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

valeurs de code variables et difficiles:

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