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

Javascript 删除使用document.createElement创建的元素,javascript,dom,Javascript,Dom,我创建此链接只是为了从fetchApi请求下载一个文件。 我想知道的是,点击后如何删除这个元素。 我尝试给元素指定id,比如:tempLink.id='someId',然后是: let element = document.getElementById('someid') element.parentNode.removeChild(element) 代码如下: const tempLink = document.createElement('a'); tempLink.href = cs

我创建此链接只是为了从fetchApi请求下载一个文件。 我想知道的是,点击后如何删除这个元素。 我尝试给元素指定id,比如:
tempLink.id='someId'
,然后是:

let element = document.getElementById('someid')
element.parentNode.removeChild(element)
代码如下:

 const tempLink = document.createElement('a');
 tempLink.href = csvURL;
 tempLink.setAttribute('download', selectedDocument?.fileName);
 tempLink.click();

如果从未将元素放入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);

如果从未将元素放入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);

如果您不将tempLink放在页面上,那么您将无法删除它,因为它只存在于您的文件中。如果你想把它附加到某个地方,你需要这样做

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

现在你可以用


document.querySelector(“模板链接的id”).remove()

如果不将模板链接放在页面上,则无法将其删除,因为它仅存在于文件中。如果你想把它附加到某个地方,你需要这样做

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

现在你可以用


document.querySelector(“模板链接的id”).remove()

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

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

您只需在以编程方式单击链接后执行remove方法,就像这样
templink.remove()
(如果附加link元素,这将起作用,如果不附加,则设置为null)那么
tempLink.parentNode.removeChild(tempLink)
?@RobBailey无法读取的属性'removeChild'null@AngelSalazar谢谢,tempLink.remove()有效。lordcarnisser-
tempLink.remove();
如果它不在DOM anywhere中,而在您上面的代码中,则它是不可操作的(这就是@RobBailey的代码不起作用的原因)。您只需要在通过编程方式单击链接后执行remove方法,就像这样
tempLink.remove()
(如果您附加了link元素,则此方法会起作用,如果您不附加它,则设置为null)tempLink.parentNode.removeChild(tempLink)怎么样?@RobBailey无法读取的属性'removeChild'null@AngelSalazar谢谢,tempLink.remove()有效。lordcarnisser-
tempLink.remove();
如果不在DOM anywhere中,那么它是不可操作的,而您上面的代码中没有(这就是@RobBailey的代码不起作用的原因).element1.style.display=“无”//element1是要删除的元素。element1.style.display=“无”//element1是要删除的元素。