[英]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.