我有一个html表,我有一个JavaScript数组。我能够正确填充表格。唯一的问题是,我正在使用onclick事件在td中添加div。
var workout = wo["workout"];
for(i=0;i<workout.length;i++){
for(j=0;j<workout[i].length;j++){
for(k=0;k<workout[i][j].length;k++){
var td = document.getElementById(i+"-"+j);
var closediv = document.createElement("div");
closediv.className = "closediv";
closediv.innerHTML = "x";
closediv.onclick = function () {
console.log(workout[i][j][k].id);
};
var exdiv = document.createElement("div");
exdiv.id = workout[i][j][k].id;
exdiv.className = workout[i][j][k].extype;
exdiv.innerHTML = workout[i][j][k].exercise;
exdiv.appendChild(closediv);
td.appendChild(exdiv);
}
}
}
id在这里正常工作:
exdiv.id = workout[i][j][k].id;
当我在这里使用时,id不起作用:
closediv.onclick = function () {
console.log(workout[i][j][k].id);
};
请让我知道我做错了什么
答案 0 :(得分:2)
<强>解强>
请尝试使用此代码:
closediv.onclick = function () {
console.log(this.parentNode.id);
});
<强>样本强>
请参阅this jsFiddle进行演示。
答案 1 :(得分:0)
我认为它的闭包循环问题。
如果你想获得适当的价值,其中一项工作可以是:
closediv.onclick = function () {
(function(i, j, k) {
console.log(workout[i][j][k].id);
)(i, j, k);
};