jquery - 将带有所选标签的节点插入带有自动关闭标签的内容可编辑 div 拆分范围
问题描述
我有一个命令调色板,其中包含几个用于内容可编辑 div 的格式化选项。例如,如果用户在将插入符号光标移动到不同的标签内容后按下按钮,我希望此标签内容拆分为两个节点,即在拆分节点之间插入 h2 标签之前自动关闭。
在某处我读到 Range 对象允许自动完成,但是当我尝试使用命令 insertNode 时,它只是将新标签作为所选锚节点的子标签。
selection = document.getSelection();
fields = selection;
range = new Range();
range.setStart(fields.anchorNode, fields.anchorOffset);
range.setEnd(fields.focusNode, fields.focusOffset);
var newTag = $("<"+newTagName+">");
newTag.addClass("inserted");
range.insertNode(newTag[0]);
newTag = $(textarea).find(".inserted")[0];
$(newTag).removeAttr("class");
range.selectNodeContents(newTag);
range.collapse(false);
selection.removeAllRanges();
selection.addRange(range);
我必须手动分割范围吗?
提前致谢。
解决方案
推荐阅读
- node.js - Electron 桌面应用程序与远程 NoSql 服务器通信
- c++ - 如何遍历字符串并转换为小写?
- docker - 当我通过 vim 而不是 docker 容器 ubuntu18.04 上的“crontab -e”编辑 crontab 时,crontab 任务不起作用
- scikit-learn - AWS Sagemaker scikit_bring_your_own 示例
- python - HTML 页面无法使用 FLASK 查看 - 出现 404 错误
- c - C 帮助程序对阅读水平进行评分
- angular - 为什么我不能在 Angular 8 应用程序中的子/父组件之间共享变量?
- swift - 如何在 Swift 中附加结构的 Bool 值
- python - 如何使用概率分布更改列表中的值?
- javascript - 将 json 数据打印到嵌套的 html 表中