Alors, je vous expose mon problème...
voici le code html sur lequel est ciblé mon script :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
<div class="news"><h3><big>GRANDE NOUVELLE !</big></h3><p class="corps">bla bla bla <span class="spoil" onClick="gere_spoil(this);">Spoil</span><div class="spoil"> rebla bla bla bla <small>bla bla toujours</small></div><br />
<br />
fin du bla bla</p><span class="auteur">Tsukaniki </span><span class="date"> le 18-06-2007 à 14:32:16</span></div>
Et voici donc le code javascript de la fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var spoilUncovered = false ;
function gere_spoil(elem) {
         div_parent = elem.parentNode ;
         i_max = div_parent.childNodes.length ;
         for (i=0 ; i < i_max-1 ; i++) {
             if (div_parent.childNodes[i] == elem) {
                var colP = (spoilUncovered)?('#FFFFFF'):('#000000') ;
                spoilUncovered = !spoilUncovered ;
                div_parent.childNodes[i+1].style.color = colP ;
                for (j=0,j_max=div_parent.childNodes[i+1].childNodes.length ; j<j_max ; j++) {
                   if (div_parent.childNodes[i+1].childNodes[j].tagName != undefined) {
                      div_parent.childNodes[i+1].childNodes[j].style.color = colP ;
                   }
                }
                break ;
             }
         }
}
Le problème est simple : cette fonction ne marche pas... Or sur un autre de mes site, elle fonctionne parfaitement, et la seule différence entre les deux sites sont les balises.
Dans ma recherche de la cause du problème, j'ai découvert que div_parent.childNodes.length vaut 2 . . . ce qui ne devrait pas être le cas au vu du code. Quelqu'un sait pourquoi ?