11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous
ou bonsoir plutôt Smiley ravi

Et bien voila, je lutte à nouveau avec un problème relativement frustrant.
J'ai mis en place un script de "table des matières" en javascript.

Avec un document scindé en titres, je crée une hiérarchie de listes à puces: une table des matières en bref. lol bon.

Tout marche bien, sauf sous Internet Explorer. Voici le code qui pose problème:
express = new RegExp("H[1-6]",'g');
alert(express.test(collect[5].nodeName)+", "+collect[5].nodeName);

En sachant que collect[5].nodeName est égal à H2

Et ce que me dit IE dans sa petite boîte de dialogue est
a écrit :
false, H2


C'est le seul titre qui me fait ce problème ! Et je ne sais vraiment pas quoi faire...

Justin

PS: Le titre H2 en question se distingue des autres par le fait qu'il est entouré de deux autres balises de titre... A savoir:
<h1>...</h1>
<h2>...</h2>   <= ICI la balise problématique
<h3>...</h3>


A ajouter aussi qu'un autre titre H2 est présent dans la page. Celui-là "m'obéit" parfaitement...
Modifié par just1dks (23 Dec 2008 - 21:00)
Un ig serait-il suffisant pour résoudre ce bug ?
express = new RegExp("H[1-6]",'ig');
Modifié par Julien de Prabere (23 Dec 2008 - 21:15)
Bonsoir.

J'ai trouvé comment résoudre mon problème. En fait, il faut remplacer:
express = new RegExp("H[1-6]","gi");
while(i < collect.length) {
  if(express.test(collect[i ].nodeName)) {
    var id = this.returnID(collect[i ],i);
    childrenList[t] = [collect[i ].nodeName.substring(1,2), id, collect[i ].innerHTML];
    t++;
  }
  i++;
}


par

while(i < collect.length) {
  express = new RegExp("H[1-6]","gi");
  if(express.test(collect[i ].nodeName)) {
    var id = this.returnID(collect[i ],i);
    childrenList[t] = [collect[i ].nodeName.substring(1,2), id, collect[i ].innerHTML];
    t++;
  }
  i++;
}


Pourquoi ? Qu'est-ce que IE ne comprend pas ?

PS: oups désolé pour le double post. Si un modérateur peut régler ceci Smiley confus
Modifié par just1dks (23 Dec 2008 - 22:37)