【发布时间】:2021-10-05 08:00:06
【问题描述】:
我在 GeeksforGeeks 上找到了这个,它解决了我的部分问题。
<script>
function download(file, text) {
//creating an invisible element
var element = document.createElement('a');
element.setAttribute('href',
'data:text/plain;charset=utf-8, '
+ encodeURIComponent(text));
element.setAttribute('download', file);
// Above code is equivalent to
// <a href="path of file" download="file name">
document.body.appendChild(element);
//onClick property
element.click();
document.body.removeChild(element);
}
// Start file download.
document.getElementById("btn")
.addEventListener("click", function() {
// Generate download of hello.txt
// file with some content
var text = document.getElementById("text").value;
var filename = "GFG.txt";
download(filename, text);
}, false);
我尝试按照我的要求制作它,我在其中的表格中动态生成多个 textarea 并隐藏它们,这样当有人点击该图标时,每个 textarea 项目都会显示下载图标,它会下载带有 textarea 的文件各行内容。
function download(file, text) {
//creating an invisible element
var element = document.createElement('a');
element.setAttribute('href', 'data:text/html;charset=utf-8, ' + encodeURIComponent(text));
element.setAttribute('download', file);
document.body.appendChild(element);
element.click();
document.body.removeChild(element);
}
document.querySelectorAll('.btn_mop').forEach(item => {
item.addEventListener('click', event => {
var text = document.querySelector('.text_mop');
var filename = "MOP.txt";
download(filename, text);
}, false)
})
p {
color: green;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!DOCTYPE html>
<html>
<body>
<style>
</style>
<textarea class="text_mop" style="display: none;">Welcome to 1st sentence</textarea>
<br/>
<input type="button" class="btn_mop" value="Download" class="fa fa-home" aria-hidden="true" />
<textarea class="text_mop" style="display: none;">Welcome to 2nd sentence </textarea>
<br/>
<input type="button" class="btn_mop" value="Download" class="fa fa-home" aria-hidden="true" />
</body>
</html>
即使我点击第二个按钮,它总是会下载第一个 textarea 内容,任何人都可以帮助我如何获取每个下载链接点击它下载相应的 textarea 内容。
【问题讨论】:
-
var text 被设置为 .text_mop 的第一个实例。您需要在事件的上下文中选择文本。
标签: javascript php html jquery css