Bonjour;
je suis debutant en developpement Web, je veux un petite exemple comment je peut récupérer dynamiquement le numéro de ligne selectionnee en table HTML.
Merci.
Ridha
Bonjour;
je suis debutant en developpement Web, je veux un petite exemple comment je peut récupérer dynamiquement le numéro de ligne selectionnee en table HTML.
Merci.
Ridha
qu'entends-tu par "ligne selectionnee" ?
a default : voici une version "ligne cliquee"
Code html : 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
19
20
21
22
23
24
25
26
27
28 <table id="data"> <tr> <td>l1c1</td> <td>l1c2</td> <td>l1c3</td> </tr> <tr> <td>l2c1</td> <td>l2c2</td> <td>l2c3</td> </tr> <tr> <td>l3c1</td> <td>l3c2</td> <td>l3c3</td> </tr> </table> <br /> <span id="display"></span> <script> document.querySelectorAll("#data tr").forEach( (row, i) => { row.addEventListener('click', () => { showFocusedRow((i+1)); }); }); function showFocusedRow(i) { document.getElementById('display').textContent = `ligne [${i}]`; } </script>
La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.
Venez discuter sur le Chat de Développez !
Salut,
Doksuri a déjà répondu en donnant un exemple mais je me disais que cela pourrait faire un bon exercice d’essayer de faire la même chose avec un seul gestionnaire d'évènement (délégation).
salut!
ou encore:
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part document.querySelectorAll("#data tr").forEach(function(row,i){row.title=i+1});
voila:
Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <table id="ma-table"> <tr> <td>l1c1</td> <td>l1c2</td> <td>l1c3</td> </tr> <tr> <td>l2c1</td> <td>l2c2</td> <td>l2c3</td> </tr> <tr> <td>l3c1</td> <td>l3c2</td> <td>l3c3</td> </tr> </table> <p id="info-click">...</p>
Code JAVASCRIPT : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 const maTable = document.getElementById('ma-table') , infoClick = document.getElementById('info-click') ; maTable.onclick=e=> { if (!e.target.matches('td')) return infoClick.textContent = ` clic sur ligne : ${e.target.parentNode.rowIndex}` + `, colonne : ${e.target.cellIndex}` + ` (contenu = ${e.target.textContent})` }
Oui bien joué !
Tu as même ajouté les colonnes...
Et l'usage de rowIndex et de cellIndex est avantageux puisque l'on utilise des propriétés déjà existantes...
La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.
Venez discuter sur le Chat de Développez !
Et puisqu'on en est à la rigolade:
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 document.querySelectorAll("#data td").forEach( c => c.title=`${c.parentNode.rowIndex+1} - ${c.cellIndex+1}`);
Bonjour,
attention à ne pas perdre de vue que dans ce cas il ne faut pas qu'il y est d'élément « parasite » tel un <span>, <button> dans l'élément <td> sinon rien ne fonctionnera.Envoyé par Beginner.
Pour s'en convaincre il suffit de modifier le HTML comme suit par exemple, qui est, somme toute, un cas classique :
Pour l'affectation il sera préférable de mettre l'écoute du click sur chaque tr mais pour limiter l'usage de la mémoire en utilisant une fonction dédiée et non une fonction anonyme qui serait dupliquée pour chaque tr.
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <tr> <td>l1c1</td> <td>l1c2</td> <td><button>Supprimer</button></td> </tr>
On peut néanmoins utiliser la délégation mais dans ce cas il faut prévoir une fonction de propagation de l'événement.
Pourquoi ne pas utiliser le potentiel des « Template strings » concernant l’utilisation des chaînes multi-lignesEnvoyé par psychadelic
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 infoClick.textContent = ` clic sur ligne : ${e.target.parentNode.rowIndex}, colonne : ${e.target.cellIndex}, (contenu = ${e.target.textContent}) `;
Les joies du CSS | Réponses sur forum | Simple comme JS | Essais libres autour de l'API G$$gle Maps
✂ ---------------------------------------------
developpez.net c'est aussi :
✔ Les meilleurs cours et tutoriels pour apprendre le CSS
✔ Les meilleurs cours et tutoriels pour apprendre le (X)HTML
✔ Les meilleurs cours et tutoriels pour apprendre le JavaScript
Partager