大佬教程收集整理的这篇文章主要介绍了jQuery AJAX调用for循环,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
for (var i = 0; i < linkList.length; i++) { $.ajax({ url: linkList[i].getAttribute("href"),cache: false }).done(function( html ) { var hasAppended = false; if (html.indexOf('someStringOnGottenPage') != -1 && !hasAppended) { hasAppended = true; var id = linkList[i].getAttribute("href").subString(linkList[i].getAttribute("href").indexOf('=')); $( "#links a[href*='" + id + "']" ).append(' THIS PAGE CONTAINS SPECIFIED DATA'); } }); }
要简单地说,我有一个页面与链接列表.我希望遍历链接,并让AJAX处理每个链接页面的内容,并回报该页面是否包含指定的内容.
我所遇到的问题是[i]用于遍历linkList的值总是为6,而不应该是.我假设我需要传递一些数据,以便当.done终于触发时,它知道它的[i]值,当AJAX首次触发时,而不是[i]当.
如何确保.done知道当AJAX第一次调用时它的价值?
for (var i .....) { async(function() { use(i); } }
在这个伪代码片段中,内部函数捕获由i引用的存储位置.循环运行,我增加到其最终值,然后异步回调开始被调用,所有这些都查找完全相同的位置(不是值).
一般解决方案是:
for (var i .....) { (function (i) { async(function() { use(i); }); })(i); }
这里,外部的值被传递到包装自身执行的匿名函数;这个独特的值的位置被异步回调所捕获.以这种方式,每个异步获取自己的值,在调用自执行功能的时刻确定.
以上是大佬教程为你收集整理的jQuery AJAX调用for循环全部内容,希望文章能够帮你解决jQuery AJAX调用for循环所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。