javascript - Contenteditable 在子节点上设置插入符号

标签 javascript jquery html

我在尝试在 <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/

相关文章:

javascript - 如何构建不改变的DOM的缓存

javascript - 将输入类的所有值插入数组

javascript - 为 HTML5 Canvas 游戏创建开始屏幕?

java - 如何打开新的 Web 浏览器而不是在单击与父窗口具有单独的 http session 的链接时弹出

javascript - AngularJS:多种形式的服务器端验证

jquery - 在 html - css - jquery 中制作分割条的最快方法

javascript - 如何使用 Javascript 逐渐更改属性值?例如。缓入缓出

javascript - 用一个滚动条控制两个 HTML 表格

html - 调整联系表中文本字段的宽度 7

javascript - 如何使用 jQuery 通过 ajax 调用传递隐藏值?