首页 > 解决方案 > Javascript:循环中的 element.click()

问题描述

我是 Javascript 的新手。

目前,我想用 Javascript 从网站下载一些图片,这是我尝试过的:

$(document).ready(function() {
   $('.indnt1').find('a').each(function() {
     if($(this).attr('target') === "_blank") {
          var image = this;
          console.log(image);
          image.click();
      }
   });
});

HTML结构:

<ul class="indnt1">
    <li>
        <a href="ht.tp://mysite.com/2021%20.jpg"
            target="_blank">pic1.jpg</a>
        <span class="textPanelFooter">(
            271 KB
            )</span>
    </li>
    <li>
        <a href="ht.tp://mysite.com/2022%20.jpg"
            target="_blank">pic2.jpg</a>
        <span class="textPanelFooter">(
            349 KB
            )</span>
    </li>
    <li>
        <a href="ht.tp://mysite.com/2024%20.jpg"
            target="_blank">pic4.jpg</a>
        <span class="textPanelFooter">(
            319 KB
            )</span>
    </li>
    <li>
        <a href="ht.tp://mysite.com/2023%20.jpg"
            target="_blank">pic3.jpg</a>
        <span class="textPanelFooter">(
            218 KB
            )</span>
    </li>
</ul>

基本上,此脚本将找到并从中下载图像。但我不知道为什么我的脚本只能下载第一个图像,它不能像我预期的那样下载多个图像。

有人可以帮我吗?为什么它不起作用?谢谢你。

标签: javascript

解决方案


请试试这个。

 var images = document.getElementsByTagName('img');
    var srcList = [];
    var i = 0;

    setInterval(function(){
        if(images.length > i){
            srcList.push(images[i].src);
            var link = document.createElement("a");
            link.id=i;
            link.download = images[i].src;
            link.href = images[i].src;
            link.click();
            i++;
        }
    },1500);

推荐阅读