Change le style d une class javascript

Résolu
momohuri Messages postés 256 Statut Membre -  
 Yoyoyo -
Bonjour,

j ai beaucoup trouve d aide en javascript pour change la class d un element, mais je voudrait plutot change le style d une classe.

Merci


A voir également:

6 réponses

Mihawk Messages postés 4753 Statut Contributeur 846
 
Pas de méthode magique malheureusement... Voici une proposition faite sur internet :

document.getElementsByClassName = function(class) {
   var retnode = [];
   var myclass = new RegExp('\\b'+class+'\\b');
   var elem = this.getElementsByTagName('*');
   for (var i = 0; i < elem.length; i++) {
      var classes = elem[i].className;
      if (myclass.test(classes)) retnode.push(elem[i]);
   }
   return retnode;
}; 


Installe ce code, et lance document.getElementsByClassName(nomdelaclasse).
Cela te retourne un tableau contenant tous les éléments de la page appartenant à cette classe, par ordre dans la page.

(Source : https://www.thoughtco.com/javascript-programming-4133476)
1
momohuri Messages postés 256 Statut Membre 8
 
j ai le droit a ca :
Erreur : class is a reserved identifier

document.getElementsByClassName = function(class) {

donc je me suis dit qu il fallait remplace le 'class' par le nom de ma classe. mais j ai ca :

Erreur : missing formal parameter

Code Source :
document.getElementsByClassName = function('maclass') {


je suis vriament pas fort en javascript...

merci de ton aide en tout cas
0
Mihawk Messages postés 4753 Statut Contributeur 846
 
Hello,

Tu ne peux pas modifier directement le style de la classe. La solution la plus simple reste de faire deux styles CSS pour deux classes différentes, et de modifier la classe comme tu sais déjà faire.

Je rappelle au passage qu'un élément peut appartenir à plusieurs classes.

Exemple :

<div class="classe1 classe2style1"></div>

Pour changer son style sans toucher, par exemple, à sa hauteur, tu changeras la classe 2 :

<div class="classe1 classe2style2"></div>
0
momohuri Messages postés 256 Statut Membre 8
 
Oki,
Et comment esque je peut recupere d un coup tout les element de cette classe? pour les modifier tous en meme temp?

j ai essaye avec :

document.images.monimg.className= "ligne1";

mais ca ne recupere que la premiere....
0
Mihawk Messages postés 4753 Statut Contributeur 846
 
Qu'entends-tu par "tous les éléments de cette classe" ?
Tu veux dire tous les éléments HTML qui ont cette classe ? Ou bien tous les attributs CSS de la classe ?
0
momohuri Messages postés 256 Statut Membre 8
 
tout les element html qui appartienne a cette classe
0
Mihawk Messages postés 4753 Statut Contributeur 846
 
Le mot class est un mot réservé !

<script type="text/javascript">
document.getElementsByClassName = function(classParam) {
   var retnode = [];
   var myclass = new RegExp('\\b'+classParam+'\\b');
   var elem = this.getElementsByTagName('*');
   for (var i = 0; i < elem.length; i++) {
      var classes = elem[i].className;
      if (myclass.test(classes)) retnode.push(elem[i]);
   }
   return retnode;
}; 
</script>

Et ensuite toi tu appelles la méthode avec par exemple :
var elementDeClasse1 = document.getElementsByClassName("classe1");
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
momohuri Messages postés 256 Statut Membre 8
 
haha merci, je vais continuer a t embete un petit peu et ca sera finit^^

document.getElementsByClassName("class1").style.display='none';

ce bordel est censée fonctionne mtn non? mais c aveut pas...
0
Mihawk Messages postés 4753 Statut Contributeur 846
 
Mais non, puisque que getElementsByClassName renvoie un tableau d'éléments !
Autrement dit, il faut le parcourir :-)

Essaye ça et dis m'en des nouvelles :

var elements = document.getElementsByClassName("maclasse");
for (var i=0 ; i<elements.length ; i++){
   elements[i].style.display = "none";
}

0
momohuri Messages postés 256 Statut Membre 8
 
magique.

Merci beaucoup
0
Mihawk Messages postés 4753 Statut Contributeur 846
 
(: au plaisir :)
0
Yoyoyo
 
Au top =D
0