javascript contenteditable:将光标设置为字符偏移量

javascript contenteditable:将光标设置为字符偏移量,javascript,contenteditable,Javascript,Contenteditable,我需要将光标设置为特定的字符偏移量。例如,在下面的示例中,我想将其设置在“a”和“b”之间 您只需将文本容器的子节点[0]传递到范围.setStart函数。 看看这个 function setSelectionRange(aNode, childElem, aOffset) { aNode.focus(); var sel = window.getSelection(), range = sel.getRangeAt(0); range.collapse(true);

我需要将光标设置为特定的字符偏移量。例如,在下面的示例中,我想将其设置在“a”和“b”之间


您只需将文本容器的
子节点[0]
传递到
范围.setStart
函数。 看看这个

function setSelectionRange(aNode, childElem, aOffset) {

  aNode.focus();

  var sel = window.getSelection(),
  range = sel.getRangeAt(0);

  range.collapse(true);

  range.setStart(childElem.childNodes[0], aOffset),

  sel.removeAllRanges();
  sel.addRange(range);
}

var container = document.getElementById("test");
var childElement = document.getElementById('item1');
setSelectionRange(container, childElement, 1);

以下是。

您只需将文本容器的
子节点[0]
传递到
范围.setStart
函数即可。 看看这个

function setSelectionRange(aNode, childElem, aOffset) {

  aNode.focus();

  var sel = window.getSelection(),
  range = sel.getRangeAt(0);

  range.collapse(true);

  range.setStart(childElem.childNodes[0], aOffset),

  sel.removeAllRanges();
  sel.addRange(range);
}

var container = document.getElementById("test");
var childElement = document.getElementById('item1');
setSelectionRange(container, childElement, 1);

以下是。

对于使用嵌套HTML元素的更通用的解决方案,您可以尝试以下答案:对于使用嵌套HTML元素的更通用的解决方案,您可以尝试以下答案:
function setSelectionRange(aNode, childElem, aOffset) {

  aNode.focus();

  var sel = window.getSelection(),
  range = sel.getRangeAt(0);

  range.collapse(true);

  range.setStart(childElem.childNodes[0], aOffset),

  sel.removeAllRanges();
  sel.addRange(range);
}

var container = document.getElementById("test");
var childElement = document.getElementById('item1');
setSelectionRange(container, childElement, 1);