javascript - 如何用按钮控制相关的文本输入元素?
问题描述
我有一个动态呈现的文本字段+按钮列表。用户点击按钮,我想在点击按钮时控制输入字段。
我认为您可以执行以下操作:
<input id="1"><button onclick="doSomething(1)">Something</button>
<input id="2"><button onclick="doSomething(2)">Something</button>
<!--...-->
<input id="3"><button onclick="doSomething(3)">Something</button>
但是想知道是否有一个不同的和更复杂的解决方案,因为我正在修改的代码将一个匿名函数传递给 onclick,而我不能像上面的方法那样传递一个唯一的 ID。
解决方案
这在 vanilla Javascript 中很容易实现(就像大多数事情一样)。这里不需要 jQuery 开销。
let buttons = [...document.getElementsByClassName('inputbutton')]
function doSomething(i) {
console.log(i);
}
for (const button of buttons) {
button.addEventListener('click', (e) => {
const i = e.target.previousSibling.id
doSomething(i);
})
}
<input id="1"><button class="inputbutton" type="button">Something</button>
<input id="2"><button class="inputbutton" type="button">Something</button>
<!--...-->
<input id="3"><button class="inputbutton" type="button">Something</button>
推荐阅读
- c++ - 如何使用公共访问权限的 POCO HTTPS 服务器?
- gradle - 这是颤振中的错误请给我解决方案
- php - 在 Laravel 中使用会话和登录“NotFoundHttpException”
- arrays - 为什么我们使用指向一维数组或多维数组的指针
- javascript - 三个js的碰撞积分和直线运动
- java - 如何正确构建具有依赖关系的 .jar 工件?
- c++ - 在 C++ 中进行类型双关语的现代、正确的方法是什么?
- c# - 动态标签栏 BG 颜色
- python - 我是否需要清理/移除在 Cloud Run 实例的部署中创建的映像?
- c# - 如何根据表 1 的结果读取表 2 中的数据