J'ai une certaine feuille de style pour un div. Maintenant, je veux modifier dynamiquement un attribut de div en utilisant js.
Comment puis-je le faire?
document.getElementById("xyz").style.padding-top = "10px";
Est-ce correct?
la source
J'ai une certaine feuille de style pour un div. Maintenant, je veux modifier dynamiquement un attribut de div en utilisant js.
Comment puis-je le faire?
document.getElementById("xyz").style.padding-top = "10px";
Est-ce correct?
C'est presque correct.
Puisque le -
est un opérateur javascript, vous ne pouvez pas vraiment avoir cela dans les noms de propriété. Si vous définissiez, border
ou quelque chose d'un seul mot comme ça à la place, votre code fonctionnerait très bien.
Cependant, la chose dont vous devez vous souvenir padding-top
, et pour tout nom d'attribut avec trait d'union, est qu'en javascript, vous supprimez le trait d'union et mettez la lettre suivante en majuscule, donc dans votre cas, ce serait le cas paddingTop
.
Il y a quelques autres exceptions. JavaScript a des mots réservés, vous ne pouvez donc pas définir float
comme ça, par exemple. Au lieu de cela, dans certains navigateurs, vous devez utiliser cssFloat
et dans d'autres styleFloat
. C'est pour des écarts comme celui-ci qu'il est recommandé d'utiliser un framework tel que jQuery, qui gère les incompatibilités de navigateur à votre place ...
En plus d'autres réponses, si vous souhaitez utiliser la notation tiret pour les propriétés de style, vous pouvez également utiliser:
document.getElementById("xyz").style["padding-top"] = "10px";
document.getElementById("xyz").style["paddingTop"] = '10px'
.Je résous un problème similaire avec:
J'espère que cela pourra aider.
la source
0
. Et parfois vous ne le voulez pas.Il existe également une
style.setProperty
fonction:https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration/setProperty
la source
En supposant que vous ayez du HTML comme celui-ci:
Si vous souhaitez modifier l'attribut de style de ce div, vous utiliserez
Remplacez
[ATTRIBUTE]
par l'attribut de style souhaité. N'oubliez pas de supprimer «-» et de mettre la lettre suivante en majuscule.Exemples
la source
float
.sera
la source
Je recommanderais d'utiliser une fonction, qui accepte l'ID d'élément et un objet contenant les propriétés CSS, pour gérer cela. De cette façon, vous écrivez plusieurs styles à la fois et utilisez la syntaxe de propriété CSS standard.
Mieux encore, vous pouvez stocker les styles dans une variable, ce qui facilitera la gestion des propriétés, par exemple
J'espère que cela pourra aider
la source
Surpris de ne pas voir la solution de sélection de requête ci-dessous ,
Solutions CSSStyleDeclaration , un exemple de réponse acceptée
la source
ferait également le travail.
la source
travaille pour moi
la source