javascript - 使用 JS 删除 <div> 部分无法按预期工作

标签 javascript dom

我尝试使用以下简单代码从 DOM 中删除周围的 div 部分:

document.getElementById("1").outerHTML = document.getElementById("1").innerHTML;
<p>
    Part 1
    <div id="1">
        <span id ="2">
            Part 2
        </span>
        Part 3
    </div>
    Part 4
</p>

应用该脚本的预期输出是所有部分都在一行内。但事实并非如此。当我手动从 HTML 代码中删除 div 部分时,它们位于一行中。你知道我做错了什么吗?

谢谢,

安德烈亚斯

最佳答案

您不能将 block 级元素嵌套在 HTML 中的内联元素内。换句话说,一个div里面 p在所有 HTML 标准中都是无效的。此外,当使用符合标准的 HTML 解析器时,不可能放置 <div> <p> 内的元素在 DOM 中,因为开头 <div>标签会自动关闭<p>元素。

如果周围元素是 div,则您的代码是正确的.

<div>
    Part 1
    <div id="1">
        <span id ="2">
            Part 2
        </span>
        Part 3
    </div>
    Part 4
</div>

关于javascript - 使用 JS 删除 <div> 部分无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33995418/

相关文章:

jquery - 使用 jquery 查找和替换

javascript - Matter.js 计算所需的力

javascript - Ramda 忽略键和值(如果它们都匹配)

javascript - 如何在属性中使用 javascript 代码?

javascript - 获取 MouseLeave 事件后鼠标悬停的第一个元素

javascript - 使用 FCKeditor 插件插入 "placeholders",稍后用动态内容替换

asp.net - 是否有任何工具可以比较 2 个网页的结构?

javascript - 防止复选框更改时触发事件

javascript - 执行 imap_close 不工作

javascript - 如何检查 Javascript 脚本是否已异步加载 (Async) 或是否存在异步属性?