Javascript 删除a<;部门>;带有JS的节无法按预期工作

Javascript 删除a<;部门>;带有JS的节无法按预期工作,javascript,dom,Javascript,Dom,我尝试使用以下简单代码从DOM中删除周围的div部分: document.getElementById(“1”).outerHTML=document.getElementById(“1”).innerHTML 第一部分 第二部分 第三部分 第四部分 不能在HTML的内联元素中嵌套块级元素。换句话说,p中的div在所有HTML标准中都是无效的。此外,当使用一致性HTML解析器时,不可能在DOM中的内放置元素,因为打开的标记将自动关闭元素 如果周围的元素是div,则代码是正确的 <div

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

document.getElementById(“1”).outerHTML=document.getElementById(“1”).innerHTML

第一部分
第二部分
第三部分
第四部分

不能在HTML的内联元素中嵌套块级元素。换句话说,
p
中的
div
在所有HTML标准中都是无效的。此外,当使用一致性HTML解析器时,不可能在DOM中的
内放置
元素,因为打开的
标记将自动关闭
元素

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

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

第一部分
第二部分
第三部分
第四部分

document.getElementById(“1”).outerHTML
将返回(1):


您的代码表示:将
(1)
替换为
(2)

问题是由于错误的HTML结构造成的。因为,P元素“不能包含块级元素(包括P本身)”

解决方案:用div替换极端p元素。检查下面的链接(工作代码)


第一部分
第二部分
第三部分
第四部分
var newHtml=document.getElementById('1').innerHTML;
document.getElementById(“1”).outerHTML=newHtml;

尝试设置
标记的innerHTML。为此,您可能需要将
嵌套在另一个标记中,或者跟踪
标记中的文本。亲爱的Prashant,感谢您的提示。不幸的是,我无法控制HTML部分。不过,很高兴知道HTML是无效的。亲爱的Santhosh,谢谢你的提示。不幸的是,我无法控制HTML部分。然而,知道HTML是无效的是件好事。
<div id="1">
   <span id ="2">
      Part 2
   </span>
   Part 3
</div>
<span id ="2">
   Part 2
</span>
Part 3
<div id="3">
    Part 1
    <div id="1">
        <span id ="2">
            Part 2
        </span>
        Part 3
    </div>
    Part 4
</div>

var newHtml = document.getElementById('1').innerHTML;
document.getElementById("1").outerHTML=newHtml;