我从@Bergi 的一篇讨论nextSibling
价值的非常古老的评论中读到了这个声明:
x.nextSibling 可能不是 span,而是 img 和 span 元素之间的换行文本节点
@Bergi 所指的示例是一些脚本,用于在相当简单的 HTML 中选择第一个元素,并找到nextSibling
:
<img src="something">
<span>
浏览器是否会在元素节点之间的 DOM 中插入“换行文本节点”?我真正想了解的是在关于使用 ProseMirror 将文档模型序列化为 HTML 的较旧讨论中的评论:
HTML 几乎总是可以用来完全表示文档 DOM。我们遇到过一个例外:兄弟文本节点。在使用 ProseMirror 之前,我们发现拥有同级文本节点很重要,因此我们将 HTML 序列化为 JSON 以存储在数据库中。出于兼容性原因,我们现在仍然这样做,但鉴于我们不再需要同级文本节点,这可能会在我们的文件格式的下一个版本中消失。
该线程中的其余讨论量很大,与这个问题无关,所以我没有链接它。我认为作者说在兄弟文本节点的情况下 HTML 不能镜像 DOM 的原因是因为换行节点会自动插入到 DOM 中(而不是在 HTML 中表示)。这是准确的吗?
我认为你提到的“隐藏字符”的概念是不准确的。问题是 nextSibling从字面上返回dom 上的下一个兄弟,这并不意味着它将成为 dom 上的下一个元素。如果您想尝试,请删除所有换行符并重试,或者直接使用nextElementSibling代替。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句