0
我有一個JavaScript代碼來創建一個表中的行:存儲值時,進入它
function create_row() {
var table = document.getElementById("main_table");
var n = table.rows.length;
var m = table.rows[0].cells.length;
var row = table.insertRow(n);
for (i=2; i<m; i++) {
var cell = row.insertCell(i);
cell.innerHTML = "<input size=4>";
cell.addEventListener("change", function() {
console.log("Column of a cell: " + cell.cellIndex);
})
}
}
document.getElementById('create_row').onclick = create_row;
我的本意是,當用戶鍵入的東西在細胞內,我要打印值。然而,cellIndex
始終是我的表(或m
)中的列數(據我所知,因爲在所有單元格創建後點擊該單元格,因此i
達到m
)。
如何更改單元格的內容時接收行,列和單元格的值?
:試試這個http://stackoverflow.com/questions/750486/javascript-closure-inside-loops-simple-practical-example – epascarello
我正要張貼此作爲一個答案,但它得到了當我檢查它時被欺騙了。當你生成每個單元格時,你可以給它一個自定義的屬性組合 - 即''td row =「3」column =「4」>'然後在你的'change'監聽器中,讓函數返回這個值,像這樣: 'cell.addEventListener(「change」,function(){ console.log(「Row」+ this.getAttribute('row')+「Column」+ this.getAttribute('column')); //以這些值作爲參數調用函數} 這是一個示例: https://jsfiddle.net/opf16x7y/ – Josiah