Javascript函数变量作用域问题
我有以下Javascript函数:Javascript函数变量作用域问题,javascript,jquery,javascript-events,Javascript,Jquery,Javascript Events,我有以下Javascript函数: $('div[id^="event"]').each(function( index ) { fullID = $(this).attr('id'); object = $(this); idOnly = fullID.replace( /^\D+/g, ''); var jqxhr = $.ajax({ type: 'POST', url: '/welcome', data: {
$('div[id^="event"]').each(function( index ) {
fullID = $(this).attr('id');
object = $(this);
idOnly = fullID.replace( /^\D+/g, '');
var jqxhr = $.ajax({
type: 'POST',
url: '/welcome',
data: {
'lat': lat,
'lon': lon ,
'eventID': idOnly
},
success: function(msg){
object.show();
}
});
});
我想让这段代码执行以下操作:
对于每个id以event开头的div id,获取div元素id的数字部分(例如,可以有一个id为“event39410”)—因此获取“39410”片段—将其与2个变量一起发送到AJAX服务—当响应返回时,显示id为“event39410”的div
ajax组件工作得很好-但是问题是,如果我有10个这样的事件标记,我会得到10个对后端的ajax调用,但我只显示最后一个“event”div-这表明在调用success函数时,对象总是引用循环中的最后一个条目
有人能帮我解决这个变量范围问题吗?在这3个全局变量前面需要
var
$('div[id^="event"]').each(function( index ) {
var fullID = this.id;
var object = $(this);
var idOnly = fullID.replace(/^\D+/g, '');
var jqxhr = $.ajax({
type: 'POST',
url: '/welcome',
data: {
'lat': lat,
'lon': lon ,
'eventID': idOnly
},
success: function(msg){
object.show();
}
});
});
繁荣不同语言之间的切换太多了!非常感谢。