繁体   English   中英

如何遍历JQuery而不弄乱我的函数的运行顺序

[英]How do I loop over JQuery without causing a messing up the order in which my functions are run

我正在构建一个网络抓取工具,以从某些网页获取一些特定信息。 我在桌子上有页面的链接,我想创建一个循环,以便在每次迭代中我的函数都可以加载特定网站的html并检查短语是否位于该网站中。 如果该短语不存在,则该表行将被删除。

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

  //snippet has been simplified to make the problem clear //assume urlList is a list of 50 different url's function dataScraper(urlList){ for(i in urlList){ $.get('https://allorigins.me/get?method=raw&url=' + encodeURIComponent(urlList[i]) + '&callback=?', function(data){ localStorage.setItem("urlHTML"+String(i),data.contents) console.log(i) //for example this just prints 49, 50 times instead of printing all the separate values of i }); } } 
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

我知道JQuery正在等待整个事件加载,但是如何确保JQuery函数接受每个单独的(i)而不是max(i)。

免责声明:我是一个自学成才的新手,并且最近了解了JavaScript,HTML和JQuery。 抱歉,如果我完全看不到某些东西。

这是我根据提供的评论和更多研究重新处理它的方式。

 function dataScraper(urlList){ var i = 0 $.each(urlList,function(){ $.get('https://allorigins.me/get?method=raw&url=' + encodeURIComponent(urlList[i]) + '&callback=?', function(data){ localStorage.setItem("urlHTML"+String(i),data.contents) console.log(i) i++ }); }); } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM