Javascript - Parcours de Dom

Javascript - Parcours de Dom - HTML/CSS - Programmation

Marsh Posté le 22-05-2006 à 14:33:28    

Bonjour, dans le cadre d'un éditeur CSS en ligne j'ai besoin de parcourir la Dom pour changer le style d'élément imbriqués .. l'essentiel serait de pouvoir le récupérer selon leur class mais ceci m'est inconnu au bataillon..
 

Code :
  1. var Ali= document.getElementsByTagName("li" );
  2. for (LC = 0; LC < Ali.length; LC++ ) {Ali[LC].style['color'] = document.form.couleur7.value; };


Dans ce cas je cherche à modifier la couleur des liens contenus dans li, soit li[a] qui ne fonctionne pas ..  :sweat:  
 
Je me demandais de la même façon si je peux parcourir la dom avec les attributs children et parent, qui ne donnent pas grand chose à ce moment ..
 
Merci de votre aide  :jap:


Message édité par grosbin le 22-05-2006 à 14:37:55

---------------
Photos Panoramiques Montagnes Haute Savoie
Reply

Marsh Posté le 22-05-2006 à 14:33:28   

Reply

Marsh Posté le 22-05-2006 à 14:55:33    

en cherchant bien dans le forum tu dois avoir une fonction getElementsByClassName qui avait été postée ( par Masklinn de mémoire mais je garantis rien). Sinon c'est assez aisément re-codable:
- un getElementsByTagName('*')
- et tu testes le className, en prenant soin de prendre en compte les déclarations multi-classes ( ce que le truc de Masklinn faisait très bien).
 
Dans ton code tu ne modifies pas le color du lien mais celui du li, peu étonnant que cela ne fonctionne pas. Par ailleurs j'ai plus l'habitude de la syntaxe style.color que style['color'] mais la tienne doit être correcte.
 
Enfin tu peux tout a fait te servir de childNode et parentNode, mais dans ton cas je ne pense pas que cela soit utile. J'obterais plutot pour un double getElementsByTagName:

Code :
  1. var liNodes= document.getElementsByTagName("li" );
  2. for (var i = 0; i < liNodes.length; i++ ) {
  3.   var aNodes = liNodes[i].getElementsByTagName("a" );
  4.    foreach(var a in aNodes){
  5.      a.style.color = document.getElementById('couleur7').value;
  6.    }
  7. }


 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed