【发布时间】:2012-11-09 22:54:13
【问题描述】:
我想在页面上的 H1 元素之后插入几个开始的 DIV 标记,而不插入相应的结束标记(因为结束标记包含在我无权访问的包含的页脚文件中)。
即 现有代码:
<body>
<h1>Heading One</h1>
... page content...
</div>
</div>
</body>
新代码:
<body>
<h1>Heading One</h1>
<div id="foo">
<div id="baa">
... page content...
</div>
</div>
</body>
DOM 方法将 div 作为完整(封闭)元素插入,'createTextNode' 插入转义字符,'innerHTML' 需要插入一个元素。甚至尝试在没有任何运气的情况下使用 document.write 插入脚本元素。
有什么想法(jQuery 可以)?
更新 以下工作:
document.body.innerHTML = document.body.innerHTML.replace('</h1>','</h1><div id="foo"><div id="baa">')
正如 Asad 所指出的,解决方案(当然现在看起来很明显)是在 HTML 上使用字符串方法而不是 DOM 方法。
【问题讨论】:
-
@f00bar 不起作用——浏览器会自动关闭所有打开的标签。这就是 DOM 应该如何工作的。 OP 将 DOM 与 HTML 源代码混淆了。
-
我会尝试 .html() 方法,但不会插入缺失的标签
-
试试 .after() 或 .append()/.prepend()
-
@banzsh .after() 插入结束标签, append() 插入 h1 元素内部而不是跟随它
标签: javascript jquery html