使用jQuery在页面上下载多个文件

时间:2016-07-16 06:40:24

标签: javascript jquery

我有一个页面,其中包含许多要单独下载的文件链接。我认为只需单击即可触发所有文件的下载功能。这是我编写的用于测试此脚本的脚本 -

$('tbody tr a').slice(1).each(function(){  //don't mind the slice().
    console.log('starting download of: ' + $(this).attr('href')); // for debugging.
    $(this).attr('target','_blank'); //  so that a new page is opened for download.
    window.location.href = $(this).attr('href');
})

问题是脚本只触发下载第一个下载链接。但是,如果我看到控制台,则会打印所有文件的日志。我认为这是因为页面重定向而发生的。任何人都可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

尝试将window.location.href = $(this).attr('href')属性替换为.click(),点击<a>,在$("tbody tr a").slice(1)的已过滤选择器.each()内的每个<button>元素上调用var a = $("tbody tr a").slice(1); $("button").click(function(e) { // download `a.txt`, `b.txt` a.each(function() { this.click() }) }); {1}}元素

&#13;
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tbody>
    <tr>
      <td>
        <a href="data:text/plain,1" download="1.txt">1</a>
      </td>
    </tr>
    <tr>
      <td>
        <a href="data:text/plain,a" download="a.txt">a</a>
      </td>
    </tr>
    <tr>
      <td>
        <a href="data:text/plain,b" download="b.txt">b</a>
      </td>
    </tr>
  </tbody>
  <!-- click to download `a.txt`, `b.txt` -->
  <button>download all files</button>
&#13;
{{1}}
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您可能希望在此处看到此答案:

jquery trigger ctrl + click

只需在所有链接上运行并触发ctrl + click即可在新页面中打开链接。