Vielleicht eine dumme Frage, aber ich fange gerade an, JS zu lernen.Protokollierung, welche Zelle im Tabellenarray mit Ereignis-Listener angeklickt wurde
Wie würde ich protokollieren, welche Tabelle Zelle mit dem folgenden Code angeklickt wurde (als Beispiel).
// Get array of td elements; 9 cells for game board
var board = document.getElementsByTagName("td");
for (var i = 0; i < board.length; i++) {
console.log(board[i]);
board[i].addEventListener("click", function() {
console.log(board[i]);
console.log(i);
});
}
<!DOCTYPE html>
<html>
<body>
<table border="1">
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td>4</td>
<td>5</td>
<td>6</td>
</tr>
<tr>
<td>7</td>
<td>8</td>
<td>9</td>
</tr>
</table>
</body>
</html>
Loggin entweder board [i] oder [i] nicht funktionieren; Ich komme immer als 9, und Board [i] kommt undefined.
EDIT: Beim Graben habe ich es geschafft, über einige Dinge zu stolpern und sie zusammen zu werfen, damit sie funktionieren.
Ich verstehe immer noch nicht ehrlich, wie es funktioniert, obwohl.
function testf(i) {
return (function(){
console.log("you clicked region number " + i);
});
}
// Trigger function cellClicked() when any table cell is clicekd
for (var i = 0; i < board.length; i++) {
board[i].addEventListener("click", testf(i));
}