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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
| <!DOCTYPE html>
<html lang="fr" dir="ltr">
<head>
<meta http-equiv="cache-control" content="public, max-age=60">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">
<meta name="author" content="Daniel Hagnoul">
<title>test</title>
<style>
th, td {
padding: 0.3rem;
width: 10rem;
height: 1.4rem;
}
button {
margin-bottom: 1.4rem;
}
</style>
<script>
'use strict';
document.addEventListener( 'DOMContentLoaded', function( ev ){
});
window.addEventListener( 'load', function( ev ){
let index = 2; // il y a déjà 2 TR dans le tableau
// gestion des événements click sur TD
function cellClickEventHandler( ev ){
// n est la valeur de l'attribut data-index du TR parent
let n = ev.target.parentNode.dataset.index;
// debug, console, touche F12
console.log( ev.target.textContent, "index = ", n );
}
// gestionnaire d'événement click pour les TD existants
for( let elem of Array.from( document.querySelectorAll( "td", "#tableau > tbody" ) ) ){
elem.addEventListener( "click", cellClickEventHandler );
}
// gestionnaire d'événement click sur le bouton "Ajoute une ligne au tableau"
document.querySelector( "#btnAjout" ).addEventListener( "click", function( ev ){
let
elemTbody = document.querySelector( "#tableau > tbody" ),
elemTr = document.createElement( 'tr' ),
elemTd = document.createElement('td'),
tempTd = elemTd.cloneNode( true ); // premier TD clone de elemTd
elemTr.dataset.index = ++index; // data-index = ( index = index + 1 )
// ajout d'un gestionnaire d'événement click sur le premier TD
tempTd.addEventListener( "click", cellClickEventHandler );
tempTd.textContent = "Bonjour";
elemTr.appendChild( tempTd ); // ajout premier TD
tempTd = elemTd.cloneNode( true ); // second TD clone de elemTd
// ajout d'un gestionnaire d'événement click sur le second TD
tempTd.addEventListener( "click", cellClickEventHandler );
tempTd.textContent = "0";
elemTr.appendChild( tempTd ); // ajout second TD
elemTbody.appendChild( elemTr ); // ajout TR au TBODY
});
});
</script>
</head>
<body>
<main>
<button id="btnAjout">Ajoute une ligne au tableau</button>
<table id="tableau">
<thead>
<tr>
<th>Nom_Actions</th>
<th>Nb_Actions</th>
</tr>
</thead>
<tbody>
<tr data-index="1">
<td>Action 1</td>
<td>0</td>
</tr>
<tr data-index="2">
<td>Action 2</td>
<td>0</td>
</tr>
</tbody>
</table>
</main>
</body>
</html> |
Partager