如何在JavaScript动态填充表中获取td的innerHTML

如何在JavaScript动态填充表中获取td的innerHTML,javascript,html,Javascript,Html,我创建了一个表,并从数组中填充了值,所以我有一个5x5表,其中每个td都将填充一个单词。这个单词来自数组memo,下面的所有代码都可以正常工作 var myTableDiv = document.getElementById("results") var table = document.createElement('TABLE') var tableBody = document.createElement('TBODY') table.border = '1' table.appendCh

我创建了一个表,并从数组中填充了值,所以我有一个5x5表,其中每个
td
都将填充一个单词。这个单词来自数组
memo
,下面的所有代码都可以正常工作

var myTableDiv = document.getElementById("results")
var table = document.createElement('TABLE')
var tableBody = document.createElement('TBODY')

table.border = '1'
table.appendChild(tableBody);

//TABLE ROWS
for (i = 0; i < this.memo.length; i++) {
    var tr = document.createElement('TR');
    for (j = 0; j < this.memo[i].length; j++) {
        var td = document.createElement('TD');
        td.onclick = function () {
            check();
        }
        td.appendChild(document.createTextNode(this.memo[i][j]));
        tr.appendChild(td)
    }
    tableBody.appendChild(tr);
}  
myTableDiv.appendChild(table);
函数检查应打印已单击的单元格的innerHTML

function check() {
    var a = td.innerHTML;
    console.log(a);
}
但它总是给我错误的文本-数组中最后一个填充的文本。
我如何解决它呢?。

这就是为什么它总是给你第一个元素:在
for(j=0;…
循环完成后,变量
td
将保存列表中最后一个元素的值。然后,当调用
check
时,它访问指向最后一个元素的相同
td
变量

要解决这个问题,可以向函数中添加一个参数,以接受特定元素并记录该元素

td.onclick = function () {
  check(td);
};

// later...
function check(element) {
  var html = element.innerHTML;
  console.log(html);
}

始终获取数组中的最后一个
td
,因为设置为
td
的最后一个值是最后一个单元格的值。您需要将a参数(例如
event
)添加到
onclick
的回调函数中,然后单击的元素将在
event.target
中引用。然后您就可以获取它的值innerHTML。

我将在单击本身中传递innerHTML-请参见下面的工作示例,以及一些用于备忘录的模拟数据

var myTableDiv=document.getElementById(“结果”)
var table=document.createElement('表')
var tableBody=document.createElement('TBODY')
var备忘录=[
['joe'、'tom'、'pete'],
['sara'、'lily'、'julia'],
[“科迪”、“蒂米”、“约翰”]
]
table.border='1'
table.appendChild(表体);
//表行
对于(i=0;i

你可以试试。。

td.onclick=函数(evt){
var html=evt.target.innerHTML;
log(html);
选中(html);//做某事。。
}

也谢谢!我无法将两个答案标记为正确答案,但它也帮助了我,谢谢:)
td.onclick = function () {
  check(td);
};

// later...
function check(element) {
  var html = element.innerHTML;
  console.log(html);
}
td.onclick = function () {
    check();
}