J'ai donc cette table, et quand je clique sur un td code> J'aimerais savoir où est-ce (quelle ligne et quelle cellule) sans aucun attributs sur les éléments.
// Track onclicks on all td elements
var table = document.getElementsByTagName("table")[0];
var cells = table.getElementsByTagName("td"); //
for(var i = 1; i < cells.length; i++){
// Cell Object
var cell = cells[i];
// Track with onclick
cell.onclick = function(){
// Track my location;
// example: I'm in table row 1 and I'm the 2th cell of this row
}
}
4 Réponses :
Eh bien, lorsque vous avez des rangées / colspan, vous pouvez vous amuser beaucoup plus, si la grille est régulière, vous pouvez simplement déterminer votre position à partir de l'index en faisant:
row = Math.floor(i / rows); column = i % columns;
Ce n'est pas régulier :) J'aimerais aussi utiliser des rangements de rangs et colspan, mais merci pour le conseil :))
dans le gestionnaire, et pour l'indice de ligne, faites ceci: p> ceci code> est la cellule du tableau, de sorte que l'index de cellule le faire:
Ce bloc de script vous fournira les informations que vous désirez, en ajoutant les informations comme propriétés à la cellule, puis en leur accédant dans la fonction onclick code>:
// Track onclicks on all td elements
var table = document.getElementsByTagName("table")[0];
// Get all the rows in the table
var rows = table.getElementsByTagName("tr");
for (var i = 0; i < rows.length; i++) {
//Get the cells in the given row
var cells = rows[i].getElementsByTagName("td");
for (var j = 0; j < cells.length; j++) {
// Cell Object
var cell = cells[j];
cell.rowIndex = i;
cell.positionIndex = j;
cell.totalCells = cells.length;
cell.totalRows = rows.length;
// Track with onclick
console.log(cell);
cell.onclick = function () {
alert("I am in row " + this.rowIndex + " (out of " + this.totalRows + " rows) and I am position " + this.positionIndex + " (out of " + this.totalCells + " cells)");
};
}
}
à l'aide de "ceci" sur la table des cellules b>
p>
<table> <tbody> <tr> <td onclick="myFunction(this)">1</td> <td onclick="myFunction(this)">2</td> <td onclick="myFunction(this)">3</td> </tr> <tr> <td onclick="myFunction(this)">4</td> <td onclick="myFunction(this)">5</td> <td onclick="myFunction(this)">6</td> </tr> <tr> <td onclick="myFunction(this)">7</td> <td onclick="myFunction(this)">8</td> <td onclick="myFunction(this)">9</td> </tr> </tbody> </table> <p id="tr"></p> <p id="td"></p>
JQuery a l'utile
$. Index () code>
méthode qui peut faire cela Pour vous si vous êtes ouvert aux cadres.Je ne veux pas utiliser de cadres, mais je vais essayer de regarder ce que cette fonction fait à JQuery.
Vous pouvez voir un exemple en utilisant
$. Index () code> en ligne sur http://jsbin.com/ okuri4 mais @patrickdw La réponse de ce qui suit ci-dessous semble être meilleure pour vous.
Cela pourrait aider: Stackoverflow.com/questions/ 661726 / How-to-Get-A-Cells-Locati sur