在jquery get请求中从for循环调用var i
Calling var i from for loop in jquery get request
我在$.get的作用域中访问var I时遇到问题。这是我的代码:
for (var i = 0; i < printer_ids.length; i++) {
$.get('/get_printer_status_message/'+printer_ids[i]+'/', function(data) {
$('#printer_status_'+printer_ids[i]).html(data);
console.log(data)
console.log('id: #printer_status_'+printer_ids[i]);
console.log('current:' + $('#printer_status_'+printer_ids[i]).html());
});
}
i是在$.get行中定义的,但不在$.got的作用域中。如何访问$.get作用域中的vari?
一个更好的重构,可以避免在每圈重新定义函数:
var doIt = function (printer_id){
$.get('/get_printer_status_message/'+printer_id]+'/', function(data) {
$('#printer_status_'+printer_id).html(data);
console.log(data)
console.log('id: #printer_status_'+printer_id);
console.log('current:' + $('#printer_status_'+printer_id).html());
});
};
for (var i = 0; i < printer_ids.length; i++) {
doIt(printer_ids[i]);
}
您必须在本地作用域中捕获i
变量:
for (var i = 0; i < printer_ids.length; i++) {
(function (i){
$.get('/get_printer_status_message/'+printer_ids[i]+'/', function(data) {
$('#printer_status_'+printer_ids[i]).html(data);
console.log(data)
console.log('id: #printer_status_'+printer_ids[i]);
console.log('current:' + $('#printer_status_'+printer_ids[i]).html());
});
}(i));
}
相关文章:
- 等待循环调用的所有承诺完成
- 为循环调用JavaScript中的SQL
- 如何在每个元素上循环调用jquery.each的数组
- 而循环调用setTimeout不起作用
- jquery每个带有参数的循环调用函数
- 本机 Ajax 中的循环调用函数
- jQuery函数使用包含setTimeout的每个循环调用自身,立即发生,而不是在结束时发生
- 使用for循环调用setTimeout
- 在jquery get请求中从for循环调用var i
- 使用增量ID从循环调用Javascript
- 用javascript中的数组循环调用函数
- document.ready用angular.js以无限循环调用
- 如何在从循环调用的方法中动态分配参数
- 如何在HTML中从for循环调用jQuery函数
- Javascript函数在等待ajax响应时循环调用
- 使用for循环调用函数时浏览器崩溃
- Javascript for循环中的函数被另一个for循环调用
- Javascript循环调用函数
- 你能从PHP循环调用JavaScript函数吗?
- 而Number原型扩展中的循环调用函数一次,然后出现未定义的错误