小编JQo*_*sed的帖子

jQuery Ajax:如何等到*async*请求成功完成后再继续?

我在制作ajax快速功能性方面遇到了问题.这是伪/原型代码:

function blah1(arg1){//arg1 is an array, roughly 10 elements

var arr[];

$.each(arg1, function(i){
//blah code

    $.ajax({
        //blah options
        async:   true,
        success: function(data){
            arr[i] = data.someInt;
        }//end success
    });//end ajax
}//end each

return arr;
}//end function
Run Code Online (Sandbox Code Playgroud)

基本上,我发送一个ajax并需要返回的数据进行进一步处理.

如果我将async设置为true,则函数会立即返回空的'arr'数组,因此整个脚本都会失败.但是,如果我将异步设置为false,那么它可以工作,但需要很长时间.

我见过这个$ .ajaxQueue(); 事情,但坦率地说,我根本不理解它,我不知道它是否会起作用.

所以问题是,首先,有没有什么方法可以同时异步发送所有的ajax请求,让函数等待并在所有ajax完成后返回arr []?如果没有,ajaxQueue会在我的情况下工作吗?(粗略的例子,请?)

ajax jquery

7
推荐指数
2
解决办法
1万
查看次数

jQuery使用变量string附加html元素

我是一个JQuery新手.我正在尝试将对象属性(以数组形式声明)附加到html元素,如下所示

HTML:

<div id="container">
<p>some text </p>
<p>some text </p>
<p>some text </p>
</div>
Run Code Online (Sandbox Code Playgroud)

JQuery脚本:

var obj{
property  :  {'apple', 'orange', 'banana'}
}

for(i=0; i<=2; i++){
$("#container p:eq("+i+")").append(obj.property[i]);
}
Run Code Online (Sandbox Code Playgroud)

并希望得到这个:

<p>some text apple</p>
<p>some text orange</p>
<p>some text banana</p>
Run Code Online (Sandbox Code Playgroud)

虽然我的Firebug控制台没有显示任何错误报告,但根本没有显示附加内容.

我究竟做错了什么?另外,有没有办法用.each()替换for循环,如果这是一个更好的做法?

谢谢

jquery

1
推荐指数
1
解决办法
3918
查看次数

标签 统计

jquery ×2

ajax ×1