我正在使用实时编辑器,需要找到用户选择范围内的所有文本节点。
示例(“|”标记选择范围的起点和终点):
<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/