Javascript在变量上返回未定义
我有这部分代码:Javascript在变量上返回未定义,javascript,variables,undefined,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
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);
}
对于(i=0;i让我们假设arr=texte.split(“;”)[1]。split(“,”)
。当执行单击时,i
将已经等于arr.length
arr[arr.length]
是未定义的
,这就是您得到的结果。解决方法可能类似于:
if (texte.split(';')[1].split(",")[i] != ""){
cell.onclick = (function(inner_i){
return function () {
chgnom('1',"'" + texte.split(';')[1].split(",")[inner_i] + "'",'');
};
})(i);
}
让我们假设arr=texte.split(“;”)[1]。split(“,”)
。当执行单击时,i
将已经等于arr.length
arr[arr.length]
是未定义的,这就是您得到的结果。解决方法可能类似于:
if (texte.split(';')[1].split(",")[i] != ""){
cell.onclick = (function(inner_i){
return function () {
chgnom('1',"'" + texte.split(';')[1].split(",")[inner_i] + "'",'');
};
})(i);
}
您是否测试了每个循环的texte.split(“;”)[1].split(“,”[i]
?
请尝试在之前将其放入变量。是否测试了texte.split(“;”)[1]。每个循环的split(“,”[i]
?
请尝试在之前将其放入变量中。您能给我们演示一下吗?您的示例需要更多信息。如果定义不足,您可能正在拆分一些不存在的内容,例如。texte的值是什么?行变量贴花在哪里?您能给我们演示一下吗?您的示例需要更多信息。如果定义不足,您可能正在拆分一些不存在的内容,例如。texte的值是多少?行变量depred在哪里?他已经在使用闭包,您发布的是返回闭包的闭包。请正确使用术语,因为闭包不是返回函数的函数,而是动态返回的函数有符号函数,可能在另一个函数中返回,也可能不返回,反过来可能是闭包,也可能不是闭包。他已经在使用闭包,您发布的是一个返回闭包的闭包。请正确使用这些术语,因为闭包不是返回函数的函数,而是一个动态分配的函数,可能是,也可能不是ot可以在另一个函数中返回,而这又可能是一个闭包,也可能不是闭包。