1

首先标题和这个问题一样:JavaScript Set Window selection

但是这个问题的标题很糟糕,因为他想知道如何选择或清除当前选择,答案是如何清除选择。

问题是,使用 java 脚本如何动态/以编程方式在元素(div、p、b 等)上创建选择?基本上,如何动态突出显示元素内的文本?

关于如何突出显示特定元素的所有文本有很多答案,但没有关于如何突出显示元素的特定文本的答案。

4

1 回答 1

2

从这里你可以得到一些信息:http: //quirksmode.org/dom/range_intro.html

编辑:

您需要遍历正确的元素节点,以便突出显示该元素内的特定文本。所以selectParticular(elem, start, end)中的元素必须是文本元素,否则会报错。

您可以使用以下代码动态突出显示/获取元素的所有文本:

function selectAll(elem){
   var range = document.createRange();
    range.setStart(elem, 0);
    range.setEnd(elem, 1);
    window.getSelection().addRange(range);
}

您可以通过以下方式突出显示/选择元素上的特定文本:

function selectParticular(elem, start, end){
    var range = document.createRange();
    range.setStart(elem.firstChild, start);
    range.setEnd(elem.firstChild, end);
    window.getSelection().addRange(range);
}

请注意,您必须先查看兼容性表,然后再将其实施到您的站点

于 2013-10-17T04:52:08.947 回答