我有这部分代码:
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'。有人可以帮我这个吗?
谢谢
答案 0 :(得分:4)
让我们假设arr=texte.split(';')[1].split(',')
。当您的点击执行时,i
已经等于arr.length
。arr[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]
?
试着把它放在变量之前。