使用javascript删除最后一个HTML元素
use javascript to remove the last html element
假设我有一个这样的网页:
<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>
之后)添加一个未关闭的注释<!--
。这将注释掉脚本,除非它带有防御性的-->
。
相关文章:
- 如何设置html元素填充的动画
- 删除对HTML元素的拖动
- 如何使用jquery迭代具有相同属性的html元素并查找onclick事件
- 如何使用JQuery在Javascript中转换字符串中的HTML元素
- 一个html元素的克隆次数太多
- 使用AngularJS Directive WHITOUT$scope创建一个动态html元素
- 为什么我在Internet Explorer上看不到html元素
- 重新排列HTML元素的顺序并更改内容
- 使用.on动态添加jquery/js不知道的html元素
- 如果类不是一个选项,如何在使用 jQuery 时控制(避免)嵌套 html 元素的样式
- 如何将html元素添加到tampermonkey中
- 访问html元素值javascript
- 如何在HTML元素上创建函数,而不是将元素作为参数传递
- 自定义HTML元素属性未显示-Web组件
- 让HTML元素充当停止滚动的锚点
- 将html元素插入到文本字符串中,以匹配另一个html字符串
- 替换HTML元素中的字符
- 如何将html元素添加为生成的内容
- 如何使用JavaScript在没有html dom的情况下隐藏html元素
- 使用JS加载HTML元素