我们要做一个在网页上划词进行高亮的功能,比如下面这种html
<div id="div">
<h1>我是h1标题</h1>
<p>我是第一段</p>
<p>我是第二段</p>
<p>我是第<span>三段</span></p>
</div>
我们通过selection对象获取用户划取的起始与终止节点对象。
用户使用鼠标划取时,很可能是从第一个p标签中间,滑到第三个p标签里的span标签中。我们通过selection对象可以知道,用户是从第一个p标签开始划的,是在一个span标签里停止的。
但是,我们如何获得用户划取的范围内的其他节点呢?selection对象没有提供这些信息。
请问各位,有什么好的方法吗?
多谢。
要分情况考虑吧,这两个node是不是有父子关系?有,很简单,没有,要两个node同时找上级节点,直到找到共同的上级节点为止,在从共同的父亲节点向下,先找到一个node,开始记录,找到另一个node,记录停止,记录的所有节点就是两个节点间的节点了啊,但这只是dom树上的,如果是页面上的,那就更复杂了,还要考虑postion、float、top、left等等css属性,感觉……几乎不能可能实现