在嵌套的contentEditable之后设置光标位置

jon*_*ohn 7 html jquery caret contenteditable

我有这个标记

<div contentEditable="true">
    Some other editable content
    <div class="field" contentEditable="false">
        <span class="label">This is the label</span>
        <span class="value" contentEditable="true">This is where the caret is</span>
    </div>
    <!-- This is where I want the Caret -->
</div>
Run Code Online (Sandbox Code Playgroud)

插入符号目前处于.field跨度.

我需要移动回出来.fieldcontentEditable.

例

如何通过javascript(如果需要使用jQuery)来实现?

当插入符号位于.value范围内时,它将尝试在keydown事件上触发它,如图所示.

Edm*_*mer 3

对之前答案的更新。 http://jsfiddle.net/GLzKy/4/

placeCaretAtEnd($(this).parent().nextAll('.field').children('value'));
Run Code Online (Sandbox Code Playgroud)

更新

用评论中的正确答案更新了答案

要直接移动到当前字段之后,您可能需要使用 range.setStartAfter 和 range.setEndAfter:http://jsfiddle.net/GLzKy/5

  • 要直接移动到当前字段之后,您可能需要使用 range.setStartAfter 和 range.setEndAfter:http://jsfiddle.net/GLzKy/5/ (2认同)