javascript - 如何获取 dom 范围内的所有文本节点?

标签 javascript jquery html dom range

我正在使用实时编辑器,需要找到用户选择范围内的所有文本节点。

示例(“|”标记选择范围的起点和终点):

<p>Here starts the |selection.</p>
<p>This is fully in the range.</p>
<p>This only |partial.</p>

我如何找到所有这些节点?(我不想找到文本节点“这里”,以防第一段中有多个文本节点!(可能有多个!) )

最佳答案

Rangy (披露:由我撰写)为您做这件事:

range.getNodes([3]); // 3 is Node.TEXT_NODE

否则,我建议遍历范围的 commonAncestorContainer 的 DOM,并针对遇到的每个文本节点,通过为文本节点创建范围(使用 selectNode)来检查它是否与范围重叠()) 并使用其 compareBoundaryPoints() 方法将其与选择范围进行比较。

关于javascript - 如何获取 dom 范围内的所有文本节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7685753/

相关文章:

php - 如何使用 DOMDocument 获取标签内容?

javascript - orientationEvent.gamma 取 +180 到 -180 度

javascript - 使用自己的服务器(通用提供商)设置 Electron 自动更新程序

javascript - Jquery 幻灯片优先

jquery - 奇怪的 jQuery UI 错误

html - 使用 CSS Sprite 的 Onmouseout 和 OnmouseOver 图像

javascript - 如何使用 keyup 事件创建复杂的公式

javascript - React Native 自定义 TextInput 占位符

php - 是否可以在运行时更改 Facebox 的设置?如何?

javascript - 如何引用 Gmail 的文本框?