首先标题和这个问题一样:JavaScript Set Window selection
但是这个问题的标题很糟糕,因为他想知道如何选择或清除当前选择,答案是如何清除选择。
问题是,使用 java 脚本如何动态/以编程方式在元素(div、p、b 等)上创建选择?基本上,如何动态突出显示元素内的文本?
关于如何突出显示特定元素的所有文本有很多答案,但没有关于如何突出显示元素的特定文本的答案。
首先标题和这个问题一样:JavaScript Set Window selection
但是这个问题的标题很糟糕,因为他想知道如何选择或清除当前选择,答案是如何清除选择。
问题是,使用 java 脚本如何动态/以编程方式在元素(div、p、b 等)上创建选择?基本上,如何动态突出显示元素内的文本?
关于如何突出显示特定元素的所有文本有很多答案,但没有关于如何突出显示元素的特定文本的答案。
从这里你可以得到一些信息: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);
}
请注意,您必须先查看兼容性表,然后再将其实施到您的站点