I have this contenteditable element:
<div id="editMe" contenteditable="true">
There is some text here.
<span id="selectThisText">This is the target text.</span>
And some here.
</div>
I want to use Javascript to select (get range object) the contents of #selectThisText. How do I get the range of the content in that element?
Thanks in advance!
Create a range and use its selectNodeContents()
method.
var span = document.getElementById("selectThisText");
var range = document.createRange();
range.selectNodeContents(span);
This doesn't work in IE <= 8, which doesn't support DOM Range. However, this is one case which is just as easy in old IE:
var span = document.getElementById("selectThisText");
var textRange = document.body.createTextRange();
textRange.moveToElementText(span);
//get Selection
var selection = window.getSelection();
//get Range
var range = selection.getRangeAt(0); //where the range selection happens.
var text = $('#selectThisText').text();
演示: http : //jsfiddle.net/5NBnP/
If you are using vanilla Javascript, you should be able to do
var text = document.getElementById('selectThisText').innerHTML;
or with jQuery
var text = $('#selectThisText').html();
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.