查找范围开始或结束的元素

时间:2018-09-16 14:42:00

标签: javascript jsdom

我正在尝试查找选定范围的起始元素。 例如:

<p>Hello, <span class="editet">Genei180</span> is My Name</p>

用户现在选择: “ ei180是我的名字”

因此,我想要类似startElementofRange()的东西,该东西返回“ object HTMLSpanElement”
我不希望在按键时只删除SpanEdíted中的部分。

我了解Node.startOffset和Node.startContainer。 但是在这种情况下,Node.startContainer将返回整个p元素作为Text元素。但是,在这种情况下,Node.startOffset相对于Span元素为2。在某些情况下,可以选择多个Span Edited Element。当前的方法是使它们全部循环:

站点注释:

这是针对一个网站的,该网站允许编辑true的Javascript标签Contenteditable ='true'并以绿色显示所有更改的内容。 如果提交,我也只想阅读跨度中的更改零件。 因此,可以由用户进行讨论并接受投票。 这通常是一种安全且有意义的方法吗?

1 个答案:

答案 0 :(得分:0)

我搜索了几周...

range.startContainer返回Notetype,但不是我所认为的p元素 而是返回Span元素的类型。

因此,您只需要使用range.startContainer.parentNode即可从中获取元素。

我现在觉得很蠢。 如果有人遇到相同问题,我会留意