如何在包含其他标记的可编辑div元素区域的末尾设置焦点

时间:2015-06-24 09:35:30

标签: javascript jquery html css

在撰写文本时,jQuery脚本会不时尝试替换某些单词。

该文字写在div标记内content editable set on true

我如何focus the cursor在父母跨度之前的最后一个孩子的end处?

<div id="cl-edit-outline-title_AtD_div" contenteditable="true">
 <span class="mceItemHidden">
  <span class="hiddenSpellError" pre="">fgsddfsdfgdsfgsd</span>
  <span class="hiddenSpellError" pre="a">a</span>
  <span class="hiddenSpellError" pre="b">b</span>
  &nbsp;
  <span class="hiddenSpellError" pre="c">c</span>
  <span class="hiddenSpellError" pre="d">d</span>
 </span>
</div>

我在网上搜索了解决方案,但没有找到。

fiddle

1 个答案:

答案 0 :(得分:0)

$.fn.focusEnd = function() {
    $(this).focus();
    var tmp = $('<span />').appendTo($(this)),
        node = tmp.get(0),
        range = null,
        sel = null;

    if (document.selection) {
        range = document.body.createTextRange();
        range.moveToElementText(node);
        range.select();
    } else if (window.getSelection) {
        range = document.createRange();
        range.selectNode(node);
        sel = window.getSelection();
        sel.removeAllRanges();
        sel.addRange(range);
    }
    tmp.remove();
    return this;
}

致电... $('.yourClassDiv').focusEnd();

享受..;)