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

use javascript to remove the last html element

本文关键字:HTML 元素 最后一个 删除 javascript 使用      更新时间:2023-09-26

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

<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删除最后一个脚本元素?

首先你应该看看浏览器是怎么处理的。HTML文档不能有文档根目录之外的元素,甚至不能有<head><body>之外的元素。假设src包含HTML源代码:

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

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

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

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

但是,由于它位于文档的底部,因此无法在加载时运行该代码(除非在该脚本下面添加另一个脚本),因为要删除的脚本在解析器移动到HTML结束标记之外之前不会在DOM中。因此,您需要等待DOM加载事件。

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

然而,如果您想阻止脚本被解析,您可以在页面的最后(在</html>之后)添加一个未关闭的注释<!--。这将注释掉脚本,除非它带有防御性的-->