如果我知道元素ID,如何选择(获取范围或选择对象)可信任div中的元素?

tun*_*ani 3 javascript jquery range selection contenteditable

我有这个令人满意的元素:

<div id="editMe" contenteditable="true">
     There is some text here.
     <span id="selectThisText">This is the target text.</span>
     And some here.
</div>
Run Code Online (Sandbox Code Playgroud)

我想用Javascript来选择(获取范围对象)#selectThisText的内容.如何获取该元素中的内容范围?

提前致谢!

Tim*_*own 8

创建一个范围并使用其selectNodeContents()方法.

var span = document.getElementById("selectThisText");
var range = document.createRange();
range.selectNodeContents(span);
Run Code Online (Sandbox Code Playgroud)

这在IE <= 8中不起作用,它不支持DOM Range.但是,这是一个在旧IE中同样容易的案例:

var span = document.getElementById("selectThisText");
var textRange = document.body.createTextRange();
textRange.moveToElementText(span);
Run Code Online (Sandbox Code Playgroud)