对变量的访问输出未定义
Access to a variable prints undefined?
您好,我试图访问如下变量,
for(var k=0;k<resultSet.length;k++)
{
alert(resultSet[k]);
$.get('/api/TagsApi/ElementsTagsIntersect?ids='+resultSet[k], function (data) {
testingarr = [];
for (var i = 0; i < data.length; i++) {
testingarr.push(data[i]["ID"]);
}
for (var w = 0; w <3; w++) {
if (($.inArray(testingarr[w], selectedloc)) > -1) {
var str = "<input type='checkbox' name ='test[]' value='" + resultSet[k] + "'/>" + resultSet[k] + "</br>";
$('#childs').append(str);
alert(resultSet[k]);
break;
}
}
}, 'json');
其中第一个alert显示我所期望的确切值,但是当涉及到内部for循环时,alert返回undefined并添加一个未定义的复选框。我认为我正在使用正确的初始化,但困惑为什么这样做?
原因是k
改变了值,所以当调用内部函数时,k
已经等于resultSet.length
。您可以将整个内容包装在另一个函数中,并将k
作为参数传递,将其绑定到一个不会随原始k
更改的新变量:
for(var k=0;k<resultSet.length;k++)
{
(function (result) {
$.get('/api/TagsApi/ElementsTagsIntersect?ids='+result, function (data) {
var testingarr = [];
for (var i = 0; i < data.length; i++) {
testingarr.push(data[i]["ID"]);
}
for (var w = 0; w <3; w++) {
if (($.inArray(testingarr[w], selectedloc)) > -1) {
var str = "<input type='checkbox' name ='test[]' value='" + result + "'/>" + result + "</br>";
$('#childs').append(str);
break;
}
}
}, 'json');
})(resultSet[k]);
}
相关文章:
- Node.js/Express未输出console.log,highcharts.js给出未定义的错误
- JS函数只返回未定义的数据,但alert输出正确的数据
- '未定义'当需要模块时输出
- 具有中文字符但输出的JSON.parse数据变为“;未定义”;
- 为什么我的输出未定义
- IE9中的有效输出,但IE7/IE8中的未定义输出
- 当在 Javascript 中使用许多 for 循环时,输出是未定义的
- 它无法正常工作,它输出未定义
- Vue.js 使用 Vuex 和自定义组件,@click方法输出未定义
- 带有Ajax的JavaScript和HTTP请求输出未定义的显示2
- 对象实例为其输出“未定义”'s原型'的属性.为什么?
- 输出未定义
- FileReader输出未定义
- 使用数组.Push输出未定义
- 从函数调用返回对象的函数输出未定义
- js部分/子模板输出未定义
- Angular UI掩码格式化输出未定义
- jsPdf输出未定义
- 对变量的访问输出未定义
- 为什么输出未定义