为了账号安全,请及时绑定邮箱和手机立即绑定

Javascript:循环中的 element.click()

Javascript:循环中的 element.click()

隔江千里 2022-07-15 10:30:29
我是 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>基本上,此脚本将找到并从中下载图像。但我不知道为什么我的脚本只能下载第一个图像,它不能像我预期的那样下载多个图像。有人可以帮我吗?为什么它不起作用?谢谢你。
查看完整描述

3 回答

?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

当您单击图像时,弹出块显示,您应该在浏览器中允许弹出选项。


我在本地尝试了您的代码,它有效。


$(document).ready(function() {

   $('.indnt1').find('a').each(function() {

     if($(this).attr('target') === "_blank") {

          var image = this;

          console.log(image);

          image.click();

      }

   });

});

<html>

<head>

</head>


<body>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<ul class="indnt1">

    <li>

        <a href="http://placehold.it/100x100"

            target="_blank">pic1</a>

        <span class="textPanelFooter">(

            271 KB

            )</span>

    </li>

    <li>

        <a href="http://placehold.it/100x100"

            target="_blank">pic2</a>

        <span class="textPanelFooter">(

            349 KB

            )</span>

    </li>

    <li>

        <a href="http://placehold.it/100x100"

            target="_blank">pic3</a>

        <span class="textPanelFooter">(

            319 KB

            )</span>

    </li>

    <li>

        <a href="http://placehold.it/100x100"

            target="_blank">pic4</a>

        <span class="textPanelFooter">(

            218 KB

            )</span>

    </li>

</ul>


</body>

</html>


查看完整回答
反对 回复 2022-07-15
?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

请试试这个。


 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);


查看完整回答
反对 回复 2022-07-15
?
慕雪6442864

TA贡献1812条经验 获得超5个赞

您是否希望出现另存为对话框?或者让图像自动下载到某个位置?


无论如何,我试过这个,我看到网络流量正在下载图像。


$('img').each(function(a, ing) {

    var src = img.src;

    var iframe = document.createElement("iframe");

    iframe.src = src;

    iframe.id = "frame";

    document.body.appendChild(iframe);

});

也许这为您指明了正确的方向。希望这会有所帮助。


查看完整回答
反对 回复 2022-07-15
  • 3 回答
  • 0 关注
  • 227 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号