javascript - 更改表格的内部 txt
问题描述
我有一个包含姓名、姓氏等的表格。我应该使用输入更改单击的 td 的值。我设法更改了第一个 td 的值,但我不确定如何更改特定 td 的值。
这是我的代码。
let inp
let changevalue
let click = addEventListener("focus" ,function(){
changevalue = document.querySelector("td")
inp = document.createElement("input")
inp.value = changevalue.innerHTML
changevalue.innerHTML = " "
changevalue.append(inp)
})
let newclick = addEventListener("blur" , function(){
changevalue.innerHTML = inp.value
})
<!DOCTYPE html>
<html>
<head>
<style>
table, th, td {
border: 1px solid black;
}
</style>
</head>
<body>
<table style="width:100%" id = "TB">
<tr >
<th>Firstname</th>
<th>Lastname</th>
<th>Age</th>
</tr>
<tr >
<td>John</td>
<td>Doe</td>
<td>80</td>
</tr>
</table>
</body>
</html>
解决方案
您可以在每个元素上添加 click 事件侦听td
器,并将 blur 事件仅用于动态创建的input
.
const tds = document.querySelectorAll("#TB td");
tds.forEach(td => {
td.addEventListener("click", e=>{
let inp = document.createElement("input")
inp.value = td.innerHTML
td.innerHTML = " "
td.append(inp);
inp.focus();
inp.addEventListener("blur", e=>{
td.innerHTML = inp.value;
});
});
});
<!DOCTYPE html>
<html>
<head>
<style>
table, th, td {
border: 1px solid black;
}
</style>
</head>
<body>
<table style="width:100%" id = "TB">
<tr >
<th>Firstname</th>
<th>Lastname</th>
<th>Age</th>
</tr>
<tr >
<td>John</td>
<td>Doe</td>
<td>80</td>
</tr>
</table>
</body>
</html>
推荐阅读
- mysql - 如何正确查询 mySQL 数据库中的 XML 列?
- python - 如何在 Python 中正确创建字典
- c# - WPF Bing Maps 图钉始终远离鼠标位置
- python - 在变换之间保持恒定的线宽
- azure - 如何在 Azure 数据工厂中使用此 Rest API
- javascript - 通过 HOC 从单个 ES6 模块导出多个组件
- typescript - TypeScript 中的 .valueOf() 和 .toString()
- php - Magento 电子商务升级后产品未更新
- .net - Queryable 是从服务中获取元素的正确方法吗?
- python - 多变量的 Lambdifying 函数