使用javascript删除最后一个html元素

时间:2015-10-18 17:01:25

标签: javascript html

假设我有一个这样的网页:

<html>
<head>
<script>
//code that deletes the last element
</script>
</head>
<body>
<h1>nothing important in the body</h1>
</body>
</html>

<!-- and then there is another script element that I want to remove with javascript:  -->

<script type="text/javascript" src="example.com"></script>

如何使用javascript删除最后一个脚本元素?

1 个答案:

答案 0 :(得分:0)

嗯,首先你应该看看浏览器实际上做了什么。 HTML文档不能包含文档根目录之外的元素,甚至不能包含<head><body>之外的元素。假设src包含您的HTML源代码:

new DOMParser().parseFromString(src, "text/html")

返回一个文档,其中脚本已移至<body>的底部。

现在你知道它在解析的DOM中的位置,你可以弄清楚如何删除它,对吗?

document.body.removeChild(document.body.lastElementChild)

但是,由于它位于文档的底部,因此您无法在加载时运行该代码(除非您添加另一个脚本甚至低于该脚本),因为要删除的脚本将不会在DOM中解析器超出HTML结束标记。所以你需要等待DOM加载事件。

如果这是你的目的,那么在评估脚本之前就没有办法删除它。

,如果您希望阻止解析脚本,您可以在页面的最后添加未关闭的评论<!--(之后) </html>)。除非它附带防御性-->,否则将会对脚本进行注释。