javascript - 如何用按钮控制相关的文本输入元素?

标签 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>

关于javascript - 如何用按钮控制相关的文本输入元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52195862/

相关文章:

javascript - 这真的是 jQuery 吗?

javascript - 使用 Javascript 显示共享点库项目

javascript - 如何在运行时向 javascript 对象添加数据

javascript - 如何获取拖动的div框的数据集属性?

javascript - 重定向到 ASP MVC 中的另一个页面后,如何使 Toastr Notification 保持事件状态

javascript - AWS Lambda 的 Webpack 配置?

javascript - 如何在coffescript中调用新变量类名而不使用eval

javascript - 在谷歌地球中移动 3d 模型?

javascript - 使用 javascript 参数命名 sessionStorage 变量

javascript - JS,使用xlink将svg保存为png错误:href