18043 sujets
Questions générales et questions de débutants
tempif a écrit :
machin = selecteur de balise
.machin = selecteur de classe
#machin = selecteur d'id
body_table_content_extract_kw je parie que t'as pas de balise qui porte ce nom dans ta page.
Tu confonds avec la syntaxe de jQuery, qui est calquée sur celle du CSS. Ce n'est pas la balise, c'est l'id de la table qui porte ce nom.
Par contre je n'ai pas l'impression que l'on puisse affecter un listener aux lignes d'une table, mais il faudrait vérifier, ce n'est pas parce que je ne l'ai jamais fait que ce n'est pas possible.
Ne serait-ce pas déjà au départ :
Et comme l'a dit tempif, as-tu bien un "table' dont l'ID est 'body_table_content_extract_kw' ?
Modifié par lddsoft (21 Mar 2015 - 17:27)
document.getElementById('body_table_content_extract_kw').rows[un index].addEventListener(...);
Que veux-tu faire en fait avec cette ligne de code?Et comme l'a dit tempif, as-tu bien un "table' dont l'ID est 'body_table_content_extract_kw' ?
Modifié par lddsoft (21 Mar 2015 - 17:27)
Il y a deux erreurs visibles au delà du fait que l'élément ayant l'id 'body_table_content_extract_kw' doit bien exister et être un tableau.
- La fonction addEventListener s'applique à un élément, ici tu essaies de l'appeler sur un tableau d'éléments, ce qui n'est pas possible.
- addEventListener prend 2 arguments obligatoires pour que ça fonctionne : 1) Le type d'évènement que tu veux écouter, 2) la fonction exécutée lorsque ce type d'évènement survient sur l'élément.
Si tu veux rattacher un évènement à chacune des lignes de ton tableau, il faudra faire quelque chose de ce genre :
Modifié par Freez (21 Mar 2015 - 18:53)
- La fonction addEventListener s'applique à un élément, ici tu essaies de l'appeler sur un tableau d'éléments, ce qui n'est pas possible.
- addEventListener prend 2 arguments obligatoires pour que ça fonctionne : 1) Le type d'évènement que tu veux écouter, 2) la fonction exécutée lorsque ce type d'évènement survient sur l'élément.
Si tu veux rattacher un évènement à chacune des lignes de ton tableau, il faudra faire quelque chose de ce genre :
var table = document.getElementById('body_table_content_extract_kw');
var rows = table.rows;
for (var i = 0; i < rows.length; i++) {
rows[ i ].addEventListener( 'click', function( e ){
// ici le code sera exécuté au onclick sur une des lignes du tableau
// le paramètre "e" sera l'évènement de 'click'
// la valeur de "this" sera l'élément cliqué (le <tr>)
});
}
Modifié par Freez (21 Mar 2015 - 18:53)