首页 > 解决方案 > 当事件附加到文档时,获取 elem 的 id

问题描述

需要注意的点:

例如:如果我换成TomPaul,我应该得到m1id。

问题e.target返回正文元素而不是特定元素(div#m1

document.body.contentEditable = true;
document.body.addEventListener('input', e => {
  console.log(e.target)
})
<div id="m1">Hello Tom</div>
<div id="m2">Hello Sam</div>

标签: javascriptcontenteditableevent-capturing

解决方案


一个问题是 - 如果整个正文是可编辑的,那么当您的用户开始编辑时,您如何知道哪些元素将保留,或者完全删除,甚至添加?

您是否可以将每个不同的元素单独标记为可编辑?根据下面的片段。

document.getElementById('m1').contentEditable = true;
document.getElementById('m2').contentEditable = true;

document.body.addEventListener('input', e => {
  console.log(e.target)
})
<div id="m1">Hello Tom</div>
<div id="m2">Hello Sam</div>

当然,也可以使用循环将每个元素设置为可编辑,以不重复代码并自动适应不同的文档结构。


推荐阅读