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

时间:2013-11-21 06:48:39

标签: 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>

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

提前致谢!

4 个答案:

答案 0 :(得分:8)

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

var span = document.getElementById("selectThisText");
var range = document.createRange();
range.selectNodeContents(span);

这在IE&lt; = 8中不起作用,它不支持DOM范围。然而,这是一个在旧IE中同样容易的案例:

var span = document.getElementById("selectThisText");
var textRange = document.body.createTextRange();
textRange.moveToElementText(span);

答案 1 :(得分:0)

//get Selection
var selection = window.getSelection();

//get Range
var range = selection.getRangeAt(0); //where the range selection happens.

答案 2 :(得分:-1)

var text = $('#selectThisText').text();

演示:http://jsfiddle.net/5NBnP/

答案 3 :(得分:-1)

如果您使用的是vanilla Javascript,那么您应该可以

var text = document.getElementById('selectThisText').innerHTML;

或使用jQuery

var text = $('#selectThisText').html();