使用javascript填充包含数组的表

时间:2015-07-27 20:58:16

标签: javascript

我有一个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);
            };

请让我知道我做错了什么

2 个答案:

答案 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);
 };