删除使用document.createElement创建的元素

时间:2020-06-23 14:17:41

标签: javascript dom

我正在创建此链接,以便仅从fetchApi请求中下载文件。 我想知道的是,单击此后如何删除该元素。 我尝试将id赋予checkMoverIsHit();之类的元素,然后赋予诸如之类的

tempLink.id='someId'

这是代码:

let element = document.getElementById('someid')
element.parentNode.removeChild(element)

3 个答案:

答案 0 :(得分:0)

如果您从未将元素放在DOM中,那么只有您的tempLink常量可以引用它。当该常量超出范围时,浏览器将回收DOM元素。您无需做任何明确的事情就可以做到这一点。


问题的旁边,但是我要注意的是,如果您从未将元素放在DOM中并立即释放对它的引用,Firefox将忽略该单击,至少我最后检查了它,所以除非它是相对较新的更改,否则...您可能需要将其附加到某处,稍等片刻然后将其删除。解决方法如下:

// WORKAROUND for Firefox's ignoring the click
const tempLink = document.createElement('a');
tempLink.href = csvURL;
tempLink.setAttribute('download', selectedDocument?.fileName);
document.body.appendChild(tempLink);
tempLink.click();
setTimeout(() => {
    document.body.removeChild(tempLink); // On modern browsers you can use `tempLink.remove();`
}, 100);

答案 1 :(得分:0)

如果您不会在页面上放置tempLink,则将无法删除它,因为它仅存在于文件中。如果您想将其附加到某个地方,则需要

document.querySelector(“在此处插入要追加的位置”).append(tempLink)

现在您可以使用

将其删除

document.querySelector(“临时链接的ID”)。remove()

答案 2 :(得分:0)

我认为您可以将元素的样式显示更改为无。

相关问题