我正在尝试制作一个内容可编辑的div,可以用来为应用程序生成消息模板。用户可以通过点击按钮将名称等字段的占位符附加到模板中。也可以通过点击占位符上的“x”来删除占位符。以下是工作片段。
var removePlaceholder = function(e){
e.parentNode.parentNode.removeChild(e.parentNode);
}
var appendPlaceHolder = function(field){
var e = document.getElementById("t");
e.innerHTML += ('<span class="tag">{'+field+'}<span onclick=removePlaceholder(this) class="remove">x</span></span>')
}
.tag {
background-color : blue;
color : white;
}
.remove {
color : red
}
<div id="t" contenteditable="true">Hello</div>
<button onclick=appendPlaceHolder("first_name")>Add first name</button>
contenteditable部分工作正常。但是,在使用appendPlaceHolder函数添加占位符后,我键入的所有内容似乎都被追加到最后插入的HTML元素中。
要重新创建问题,请运行代码段并点击“添加名字”按钮,然后继续在该区域键入。
使现代化
添加了图像来解释情况