获取在内容可编辑中更改的元素
Get element being changed in contenteditable
如何获取正在编辑的元素?
.HTML
<div contenteditable=true>
<pre>
<span class="1">First line</span>
<span class="2">Second line</span>
</pre>
</div>
当我编辑"第一行"时,如何检查正在编辑哪个跨度类?
.JS
window.addEventListener("input", inputHandler, false);
function inputHandler(e) {
console.log(e.target);
}
打印出整个div 类:
<div contenteditable=true>
<pre>
<span class="1">First line</span>
<span class="2">Second line</span>
</pre>
</div>
但我只想得到<span class="1">First line</span>
Span element
不能有input/keypress/keyup
... events
和那些events
无法在其上注册。尽管还有其他方法可以实现此目的,但您也可以使用DOMCharacterDataModified
事件,请查看下面的代码段。
var div = document.getElementById("edit");
div.addEventListener("DOMCharacterDataModified", inputHandler, false);
function inputHandler(e) {
var elem = e.target.parentNode;
alert("Element: " + elem.tagName + " class name: " + elem.className);
}
<div id="edit" contenteditable=true>
<pre>
<span class="1">First line</span>
<span class="2" >Second line</span>
</pre>
</div>
您必须对计划修改的每个片段分别影响 contenteditable
属性。
您必须选择如何将事件侦听器添加到所有这些事件。例如,像这样:
var editables = document.getElementsByClassName('editable');
for (var editable of editables) {
editable.addEventListener("input", inputHandler, false);
}
function inputHandler(e) {
console.log(e.target);
}
<div>
<pre>
<span class="editable 1" contenteditable>First line</span>
<span class="editable 2" contenteditable>Second line</span>
</pre>
</div>
相关文章:
- CKEditor Widget-阻止编辑可编辑元素本身
- 将事件聚焦/模糊在可编辑内容的元素上
- 一个页面上有多个Ace编辑器,没有预先设置元素
- jQuery/Javascript在内容可编辑的当前段落后插入元素
- 如何删除包含内容可编辑跨度的整个跨度元素
- javascript正则表达式,用于编辑元素内部的css样式属性
- 在此内容可编辑元素中获取当前行和行索引
- 为什么触发点击内容可编辑不会激活元素和设置光标
- 我在Phaser有一个项目.我想在画布上的元素上做一个用户图像编辑器
- ContentEditable元素--将光标移回可编辑文本的开头
- 如果AngularJS中有可编辑的表行,那么表单元素放在哪里
- 如何设置元素的占位符文本 我无法编辑 HTML 并且 ID 正在更改
- 如何通过元素选择器获取tinyMCE编辑器实例
- “;idd”;html中的属性?编辑:我可以使用Javascript获得基于自定义属性的元素吗
- 在inspect元素上编辑HTML时刷新Chrome DOM
- 双击以编辑Meteor应用程序中的元素
- JAVASCRIPT - 在动态创建的编辑框中拦截键码 13(输入)并将元素传递给不同的函数
- 防止文本在内容可编辑元素中突出显示时被删除
- 如何防止用户在内容可编辑元素中键入新行
- 如何自动调整内容可编辑元素的大小