javascript - 通过 oninput 函数获取可编辑标签的值?
问题描述
<td contenteditable="true" class="name_of_child" oninput="set_text(this,'name_of_child_1')"></td>
<td contenteditable="true" class="date_of_birth" oninput="set_text(this,'date_of_birth_1')"></td>
<td contenteditable="true" class="living_or_deceased" oninput="set_text(this,'living_or_deceased_1')"></td>
我想通过这样oninput
的表格td
元素中的函数获取文本,但遗憾的是这适用于输入字段,但不适用于表格td
标签。有没有办法使用或任何其他方式获取td
文本?oninput
解决方案
为什么不更抽象呢?
const data = {}
const setup = () => {
document.querySelectorAll('td').forEach(td => td.addEventListener('input', setText));
const btn = document.querySelector('button');
btn.addEventListener('click', (event) => console.log(data));
}
const updateObject = (key, value) => data[key] = value;
const setText = (event) => {
const target = event.currentTarget;
const key = target.dataset.var;
const value = target.textContent;
updateObject(key, value);
}
window.addEventListener('load', setup)
td {
background: red;
min-width: 5em;
}
<table>
<tr>
<td contenteditable="true" data-var="name_of_child"></td>
<td contenteditable="true" data-var="date_of_birth"></td>
<td contenteditable="true" data-var="living_or_deceased"></td>
</tr>
</table>
<button>
Show Object
</button>
推荐阅读
- javascript - VueJS - 我怎样才能有多个 v-slots?
- django - 如何在 Django ModelForm 中保存到数据库之前转换表单字段数据?
- java - Kafka:如何使用异步发送计算成功/失败
- emulation - 为什么不能将仿真 ROM 重新编译为 x86?
- sql-server - 使用 VBA 将 ODBC 链接的 SQL 表复制到 Access 表
- android - Android Async接口获取json请求获取的数据
- python - 返回产生最大差值的指标
- java - ICEpdf - MissingResourceException:在应用程序启动期间找不到基本名称 org.icepdf.ri.resources.MessageBundle 的包,语言环境 de_DE
- ios - 我应该如何在 iOS 中通过移动 vlc 工具包添加自定义视图
- oracle - 是否可以将 SQL Loader 用于 PostgreSQL 数据库?