我尝试使用以下简单代码从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>
&#13;
应用脚本的预期输出是所有部分都在一行内。但他们不是。当我从HTML代码手动删除div部分时,它们在一行中。我有什么想法我做错了吗?
谢谢,
Andreas
答案 0 :(得分:1)
您不能将块级元素嵌套在HTML中的内联元素中。换句话说,div
内的p
在所有HTML标准中都无效。此外,在使用符合标准的HTML解析器时,无法在<div>
内的<p>
内放置<div>
元素,因为开始<p>
标记会自动关闭div
元素
如果周围的元素是<div>
Part 1
<div id="1">
<span id ="2">
Part 2
</span>
Part 3
</div>
Part 4
</div>
,那么您的代码是正确的。
InetAddress.getByName(ip).isReachable(timeout);
答案 1 :(得分:0)
document.getElementById("1").outerHTML
将返回(1):
<div id="1">
<span id ="2">
Part 2
</span>
Part 3
</div>
document.getElementById("1").innerHTML;
将返回(2):
<span id ="2">
Part 2
</span>
Part 3
您的代码意味着:将(1)
替换为(2)
答案 2 :(得分:0)
问题是由于错误的HTML结构造成的。因为,P元素“不能包含块级元素(包括P本身)”。
解决方案:用div替换极端P元素。检查下面的链接(工作代码)。
<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;