Javascript在变量上返回undefined

时间:2012-07-17 12:43:40

标签: javascript variables undefined

我有这部分代码:

for (i = 0; i <= texte.split(';')[1].split(',').length - 1; i++) {
        cell = document.createElement("td");
        cell.setAttribute("width", "10%");
        cell.setAttribute("align", "center");
        if (texte.split(';')[1].split(",")[i] != "")
            cell.onclick = function () { chgnom('1',"'" + texte.split(';')[1].split(",")[i] + "'",''); };
        textnode = document.createElement("span");
        textnode.innerHTML = texte.split(';')[1].split(",")[i];
        cell.appendChild(textnode);
        row.appendChild(cell);
    }

对innerHTML中的texte.split(';')[1].split(",")[i]的调用返回'HELLO',但函数中的那个返回'undefined'。有人可以帮我这个吗?

谢谢

2 个答案:

答案 0 :(得分:4)

让我们假设arr=texte.split(';')[1].split(',')。当您的点击执行时,i已经等于arr.lengtharr[arr.length]undefined,这就是您所获得的。解决方法可能类似于:

if (texte.split(';')[1].split(",")[i] != ""){
    cell.onclick = (function(inner_i){
        return function () { 
            chgnom('1',"'" + texte.split(';')[1].split(",")[inner_i] + "'",''); 
        };
    })(i);
}

答案 1 :(得分:0)

您是否为每个循环测试了texte.split(';')[1].split(",")[i]? 试着把它放在变量之前。