在 HTML 中表示文档 DOM:兄弟文本节点

网络堆栈开发

我从@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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在DOM文档中创建空文本节点

如何通过xpath提取html dom中的文本节点的文本?

如何从DOM查询文本节点,查找markdown模式,将匹配项替换为HTML标记以及将原始文本节点替换为新内容?

HTML Agility Pack不更改文本节点的文本

如何将HTML插入AngleSharp中的文本节点?

使用JQuery将文本节点转换为HTML元素

如何从HTML中删除“空白文本节点”?

提取包含文本节点的HTML而不对其进行编码

XSLT 从 XML 文本节点设置 HTML bgcolor

Selenium:如何在包含 html 标签的页面上查找文本?(文本节点)

在 DOM 中加粗文本节点

获取DOM中的文本节点值

使用 JavaScript 在 HTML 中创建样式文本节点的 SVG 轮廓路径

如何从 JS 中的 HTML 标签元素中仅获取文本节点(不是嵌套标签)的内容?

如何使用regexp在原始html文本节点中的非终止点后插入中断标签

在CSS中选择HTML文本节点的规则是什么?

Xpath中文档中没有文本节点后代的所有元素?

如何在GraphViz中表示节点权重?

从HTML文本的开头剥离所有br标签,直到下一个元素是文本节点Javascript或jQuery

如何在Kotlin html框架中表示Web组件标签?

如何在创建`Nokogiri :: XML`或`Nokogiri :: HTML`对象时避免创建不重要的空白文本节点

取代&nbsp; 来自javascript dom文本节点

在DOM中开始文本节点后如何做

DOM中的相邻文本节点可以与Javascript合并吗?

当信息同时出现在属性和文本节点中时,将嵌套的XML文档转换为数据框

在XML中将元素节点作为文本节点的兄弟姐妹是错误的吗?

html DOM节点限制

DOM和虚拟DOM如何在内存中表示?

如何测试文本节点是否介于当前节点和已定义的前一个兄弟节点之间?