在调用parentelement.innerHTML获取DOM时,void自定义元素被更改

时间:2016-05-21 20:26:32

标签: javascript html dom

我正在使用javascript来转换DOM,其中包含一个自定义标记(我无法控制其名称)。 然后我在父元素上调用innerHTML以将转换后的DOM作为字符串。我的问题是,只是这样做DOM更改,我假设是因为自定义标记。

请参阅下面的最小示例。忽略由代码段管道添加的额外脚本位,关键是pagebreak标记现在包裹test

我如何防止这种情况,并在进行innerHTML通话时保留DOM?

console.log(document.getElementsByTagName('body')[0].innerHTML);
<html>
<body>
<mbp:pagebreak />test
</body>
</html>

1 个答案:

答案 0 :(得分:1)

自定义元素是非空的,因此您应该指定一个结束标记,如下所示:

&#13;
&#13;
console.log(document.getElementById('test').innerHTML);
&#13;
<div id="test">
    <mbp:pagebreak></mbp:pagebreak>test
</div>
&#13;
&#13;
&#13;