如何在JavaScript动态填充表中获取td的innerHTML
我创建了一个表,并从数组中填充了值,所以我有一个5x5表,其中每个如何在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
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();
}