我在尝试在 <i>
之后设置插入符时遇到了一些困难。 contenteditable
内的标签.
这是我所拥有的:
<p contenteditable="true"><i>H</i><i>e</i><i>l</i><i>l</i><i>o</i></p>
如何将插入符放在 .. 假设 3rd <i>
之后在这里标记?
我已经尝试过这个解决方案:
var el = document.getElementsByTagName('p')[0];
var range = document.createRange();
var sel = window.getSelection();
range.setStart(el.childNodes[0], 3);
range.collapse(true);
sel.removeAllRanges();
sel.addRange(range);
el.focus();
但我不知道如何使其与 <i>
的位置一起工作标签而不是字符。
最佳答案
var el = document.getElementsByTagName('p')[0];
var range = document.createRange();
var sel = window.getSelection();
range.setStart(el.childNodes[3], 0);
range.collapse(true);
sel.removeAllRanges();
sel.addRange(range);
el.focus();
<p contenteditable="true"><i>H</i><i>e</i><i>l</i><i>l</i><i>o</i></p>
在p
中有5个子节点,如果要在子节点处设置插入符号,请使用range.setStart(el.childNodes[3], 0);
关于javascript - Contenteditable 在子节点上设置插入符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45352270/