是否有删除元素的争用条件?



我对JS和HTML很陌生。我想在页面加载后立即从页面中删除元素。这是我的简单 HTML 代码:

<html>
<head>
</head>
<body>
<div id="trapParent"><a id="trap" href='/trap/removeByJS'> Javascript removal </a></div>
<script>
function timeout() {
setTimeout(function () {
timeout();
}, 1000);
}
timeout();
var parent = document.getElementById('trapParent');
var child = document.getElementById('trap');
while (child & parent){
parent.removeChild(child);
parent = undefined;
child = undefined;
}
</script>
</body>
</html>

但是当我打开页面时,我仍然可以获得对页面上链接的引用;当我得到document.getElementById('trap');的值时,它返回链接,这意味着它仍在 DOM 中,我可以看到链接仍然存在。我在这里错过了什么吗?

我添加了超时函数,以确保脚本将在加载页面后运行。

多亏了上面的答案,以下内容对我有用:

<html>
<head>
</head>
<body onload = "removelink();">
<div id="trapParent"><a id="trap" href='/trap/removeByJS'> disables Javascript </a></div>
Hey!
<script>
function removelink( ){
var parent = document.getElementById('trapParent');
var child = document.getElementById('trap');
while (child && parent){
parent.removeChild(child);
parent = undefined;
child = undefined;
}
}
</script>
</body>
</html>

最新更新