Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何循环JQuery而不造成函数运行顺序混乱_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何循环JQuery而不造成函数运行顺序混乱

Javascript 如何循环JQuery而不造成函数运行顺序混乱,javascript,jquery,html,Javascript,Jquery,Html,我正在建立一个网页刮板,以获得一些特定的信息,从一些网页。我有一个表中页面的链接,我想创建一个循环,以便在每次迭代中,我的函数都可以加载特定网站的html,并检查该网站中是否有短语。在短语不存在的情况下,该表行将被删除 我意识到,由于某种原因,当我运行循环时,应该刮取单个链接的JQuery函数会等待循环结束,然后刮取同一页50次,而不是每次刮取不同的网页 //代码片段已简化,以明确问题所在 //假设urlList是50个不同url的列表 函数dataScraper(urlList){ 对于(U

我正在建立一个网页刮板,以获得一些特定的信息,从一些网页。我有一个表中页面的链接,我想创建一个循环,以便在每次迭代中,我的函数都可以加载特定网站的html,并检查该网站中是否有短语。在短语不存在的情况下,该表行将被删除

我意识到,由于某种原因,当我运行循环时,应该刮取单个链接的JQuery函数会等待循环结束,然后刮取同一页50次,而不是每次刮取不同的网页

//代码片段已简化,以明确问题所在
//假设urlList是50个不同url的列表
函数dataScraper(urlList){
对于(URL列表中的i){
$.get('https://allorigins.me/get?method=raw&url=“+encodeURIComponent(urlList[i])+”&回调=?”,函数(数据){
localStorage.setItem(“urlHTML”+字符串(i),data.contents)
log(i)//例如,它只打印49、50次,而不是打印i的所有单独值
});
}
}

以下是我根据提供的评论和一些进一步的研究重新编写的方法

函数数据记录器(urlList){
变量i=0
$.each(URL列表,函数(){
$.get('https://allorigins.me/get?method=raw&url=“+encodeURIComponent(urlList[i])+”&回调=?”,函数(数据){
localStorage.setItem(“urlHTML”+字符串(i),data.contents)
控制台日志(i)
我++
});
});
}

如果这是javascript,您可能想尝试重新编写它,使用“forEach()”和一个计数器来代替它?VarI=0;forEach(函数(url){//all-your-get-stuff;i++;})
i
不在回调函数的范围内,因此它只输出循环最后一次迭代的全局值。根据引用的接受答案,此处a可能重复。