我有一个包含对象的数组,我想通过GET保存每个对象,并在回调中更新某些参数,bot
html:
<html><body><div id='test'><div id="a">a</div><div id="b">b</div></div></body></html>
js:
$.map($("#test > div"), save)
save = function(o,i){
itt = $(o)
tmp = {'desc':itt.html()};
$.get('ajax/update_post', {'data':array2json(tmp)}, function(a){
alert(itt.attr('id'))
updatePostBack(a,itt)
})
}
updatePostBack = function(a,item){
alert(item.attr('id'))
}
updatePostBack始终接收las项目! 如何将正确的id或对象传递给js / jquery中的回调函数?
答案 0 :(得分:2)
解决方案非常平凡:您需要在变量前面添加var
以将它们声明为新变量。在第一次迭代完成之前,它们被下一次迭代不恰当地覆盖。这段代码适合我:
save = function(o,i){
var itt = $(o)
var tmp = {'desc':itt.html()};
$.get('ajax/update_post', {'data':array2json(tmp)}, function(a){
alert(itt.attr('id'))
updatePostBack(a,itt)
})
}
updatePostBack = function(a,item){
alert(item.attr('id'))
}
$.map($("#test > div"), save);
我还将map语句移到了最后,以便在声明之后调用save函数。