11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
je souhaiterai changer le style de tous mes div enfant en ne connaissant seulement l'id de la div parent.


<script>
function toutchanger(){
document.getElementById('parentdiv').all.style.color="#ff00ff";
}
</script>

]<div id="parentdiv">

<a href="javascript:toutchanger();">Tout changer</a><br />
<div>Bloc enfant</div>
<div>Bloc enfant</div>
<div>Bloc enfant</div>
<div>Bloc enfant</div>
<div>etc...</div>

</div>



C'est sur cette ligne
document.getElementById('parentdiv').all.style.color="#ff00ff";
que je ne sais pas comment arranger pour que ça fonctionne.

Merci pour votre aide. Smiley cligne
Modifié par tynmar (20 Mar 2007 - 09:52)
Bonjour,

Pour que ton script fonctionne, il faut que tu procèdes comme suit :
- tout d'abord lister tous les <div> contenu dans #parentdiv ;
- puis appliquer le style voulu.

Pour rechercher les <div> enfants, procède au moyen d'une boucle qui parcourera la page. Smiley cligne
Salut,

Ce n'est peut-être qu'un exemple, mais l'attribut color est de toute façon hérité, non ?

Sinon, l'idéal est de changer le className du div parent et d'utiliser les CSS pour cibler les div enfants :
.maClasse div {color: #ff00ff;}

Si tu ne connais pas à l'avance le style à attribuer, il faudra alors utiliser la solution proposée par Cygnus.
Merci pour vos réponses, mes enfants sont générés dynamiquement en php et c'est vrai que ta solution Cygnus pourrait convenir si mes DIV ont cet id
<div id="enfant<? echo $i; ?>">


Ensuite je récupère le nombre de div que le php a créé assez simplement et je refais la boucle en javascript. ok

Merci bien pour vos conseils Smiley biggrin