在HTML中表示文档DOM:同级文本节点

时间:2018-03-27 23:53:25

标签: javascript html dom transformation prose-mirror

我在very old comment讨论nextSibling值时从@Bergi中读到了这句话:

  

x.nextSibling可能不是跨度,而是换行文本   img和span元素之间的节点

@Bergi所指的是一些脚本,用于选择相当简单的HTML中的第一个元素,并找到nextSibling

<img src="something">
<span>

浏览器是否会在元素节点之间的DOM中插入“换行文本节点”?我真正想要理解的是这篇关于使用ProseMirror将文档模型序列化为HTML的讨论中的注释:

  

HTML几乎总是可以用来完全代表文档DOM。   我们遇到过一个例外:兄弟文本节点。之前   使用ProseMirror我们发现拥有兄弟文本很重要   节点,因此我们将HTML序列化为JSON以存储在数据库中。   出于兼容性原因,我们现在仍然这样做,但考虑到我们   不再需要兄弟文本节点,这可能会消失   我们的文件格式的下一个版本。

该线程中的其余讨论是浩繁的,与此问题无关,所以我没有链接它。我认为这位作者之所以说HTML在兄弟文本节点的情况下无法镜像DOM的原因是因为换行节点会自动插入到DOM中(而不是用HTML表示)。这准确吗?

1 个答案:

答案 0 :(得分:1)

我认为你提到的“隐藏字符”的概念并不准确。 问题是nextSibling返回字面上 dom上的下一个兄弟,这并不意味着它将成为dom上的下一个元素。 如果您想尝试,请删除所有换行符并重试,或者只使用 nextElementSibling