下载一个jquery代码,将内容可编辑div中的光标位置设置为位置10
var range,selection; var contentEditableElement = $("div#editMe");
if(document.createRange)//Firefox, Chrome, Opera, Safari, IE 9+
{
range = document.createRange();
range.selectNodeContents(contentEditableElement);
range.collapse(true);
range.setStart(contentEditableElement,0);
range.setEnd(contentEditableElement,10);
selection = window.getSelection();
selection.removeAllRanges();
selection.addRange(range);
}
但这些不起作用。有什么问题 。 ??
答案 0 :(得分:2)
这是一个工作示例。如果我只将文本放在div中,它似乎无法工作,我必须将每个字符放在一个元素中。另请注意,您必须在jquery对象上使用.get(0)来实际获取要与range.setStart和range.setEnd一起使用的dom对象。
HTML:
<div id="editMe">
<span>a</span><span>b</span><span>c</span><span>d</span><span>e</span><span>f</span><span>g</span><span>h</span><span>i</span><span>j</span><span>k</span><span>l</span><span>m</span><span>n</span>
</div>
<button onclick="do_select()">
select characters
</button>
JS:
function do_select()
{
var element = $("div#editMe").get(0);
var range = document.createRange();
range.collapse(true);
range.setStart(element,0);
range.setEnd(element,10);
var selection = window.getSelection();
selection.removeAllRanges();
selection.addRange(range);
}