如何使用Rangy选择文本节点?

时间:2014-03-01 13:12:24

标签: javascript range selection rangy

我有一个我刚刚插入DOM的常规文本节点。

我想选择它(就像用户用鼠标选择它一样),使用Javascript或Rangy。

我有以下(我觉得很难看)代码:

        // insert as regular text node
        var txt = document.createTextNode($mySpan.text());
        $myHeading.get(0).insertBefore(txt, $mySpan.get(0));

        // select again
        var sel = rangy.getSelection();
        sel.removeAllRanges()

        var range = rangy.createRange();
        range.selectNode(txt);

我很乐意为此提供帮助。我不知道如何实现它,并且goggling不起作用。我能想到的唯一方法是在文本之间插入2个元素,然后选择它,然后删除元素,但我想知道是否有更优雅的方式。

谢谢,任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:5)

除非我的眼睛欺骗了我,否则你的代码中唯一缺少的就是这一行:

sel.setSingleRange(range);

只需将其添加到您目前所拥有的结尾即可。 (您也可以删除sel.removeAllRanges()。)