0

我在一个非常古老的评论中从@Bergi 阅读了这个声明,讨论了一个nextSibling值:

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

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

<img src="something">
<span>

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

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

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

4

1 回答 1

1

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

于 2018-03-27T23:59:19.480 回答