是否存在竞争条件才能删除元素?

时间:2018-09-08 15:32:07

标签: javascript html css

我是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中,并且我可以看到该链接仍然存在。我在这里想念东西吗?

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

1 个答案:

答案 0 :(得分:0)

由于上述答案,以下对我有用:

<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>