Erreur : element.setAttribute is not a function
Publié : 08 juin 2005, 15:22
Bonjour,
J'essaie d'écrire un petit javascript chargé d'afficher ou de cacher des lignes de tableau en fonction d'un pattern (regexp).
J'essaie de le faire en changeant la l'attribut "class" de la ligne, la feuille de style précisant :
table tbody tr.hidden { display:none}
Le problème est qu'à l'exécution, j'obtiens l'erreur
Erreur : rows[k].setAttribute is not a function
Le code incriminé :
Le plus curieux est que si je fait ce qui suit (pour le test, car du coup, la fonction ne donne pas le résultat escompté
) :
L'erreur n'est pas déclenchée et la ligne est bien cachée.
Cela me semble ressembler au problème rencontré par PerfectSlayer le
26/03/2005 (même erreur avec Focus()) mais il n'a pas eu de réponse
Merci.
J'essaie d'écrire un petit javascript chargé d'afficher ou de cacher des lignes de tableau en fonction d'un pattern (regexp).
J'essaie de le faire en changeant la l'attribut "class" de la ligne, la feuille de style précisant :
table tbody tr.hidden { display:none}
Le problème est qu'à l'exécution, j'obtiens l'erreur
Erreur : rows[k].setAttribute is not a function
Le code incriminé :
Code : Tout sélectionner
// récupération de la table, du tbody puis des lignes, puis :
...
// pour chaque cellule de la ligne, je regarde si le pattern est trouvé
for (var k=0; k < rows.length; k++)
{
cells=rows[k].childNodes;
for (var m=0; m < cells.length; m++)
{
if (r.test(cells[m].innerHTML)) foundInLine=true;
}
if (foundInLine)
{
rows[k].setAttribute("class","shown");
foundInLine=false;
} else {
rows[k].setAttribute("class","hidden");
}
}

Code : Tout sélectionner
for (var k=0; k < rows.length; k++)
{
cells=rows[k].childNodes;
for (var m=0; m < cells.length; m++)
{
if (r.test(cells[m].innerHTML))
{
foundInLine=true;
rows[k].setAttribute("class","hidden");
}
}
}
Cela me semble ressembler au problème rencontré par PerfectSlayer le
26/03/2005 (même erreur avec Focus()) mais il n'a pas eu de réponse

Merci.