我有一个页面,其中包含许多要单独下载的文件链接。我认为只需单击即可触发所有文件的下载功能。这是我编写的用于测试此脚本的脚本 -
$('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');
})
问题是脚本只触发下载第一个下载链接。但是,如果我看到控制台,则会打印所有文件的日志。我认为这是因为页面重定向而发生的。任何人都可以帮我解决这个问题吗?
答案 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}}元素
<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;
答案 1 :(得分:0)