javascript - Contenteditable:防止内部元素被删除

标签 javascript jquery contenteditable

我有一个简单的内容可编辑标记:

<div class="example" contenteditable="true">
     <div class="inside">Some content</div>
</div>

当我删除“Some content”时,class="inside" div也会被删除。有没有办法防止删除内容时删除内部 div?

例如,这是我在删除内容后尝试做出的外观。

<div class="example" contenteditable="true">
     <div class="inside"></div> <!-- The div is not deleted -->
</div>

我环顾四周,但似乎没有明确的答案。

任何帮助将不胜感激。

谢谢。

最佳答案

const example = document.querySelector(".example")

example.addEventListener("keydown", (e) => {
 if (e.keyCode == 8 || e.keyCode == 46) { // delete and del keys
   if (example.children.length === 1) { // last inner element 
     if (example.children[0].innerText < 1) { // last element is empty
       e.preventDefault()
     }
   } 
 })

关于javascript - Contenteditable:防止内部元素被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40901365/

相关文章:

jquery - MVC 3 和 JQuery - 在下拉列表的第一个位置插入选项

jquery - 如何使全日历中过去的日期不可选择?

javascript - 如何编辑 contentEditable div 中的链接

javascript - JS 抓取 dom 中任何带有双引号的文本

javascript - 动态更新 JavaScript 数组

javascript - Web 应用程序发送表单两次

javascript - 在 span 和其他内联标签上启用 CKEditor4 内联

javascript - Href 更改时的 Jquery 类更改?

javascript - 计算并替换页面中的特殊数字(javascript)

javascript - 将 CSS 类应用于 Content Editable div 中的选定文本