You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

点击指定按钮在其下方动态创建input输入框的实现问题

问题原因

你代码中的document.querySelector(".buttonTest")只会返回页面中第一个匹配.buttonTest选择器的元素,所以不管点击哪个按钮,新输入框都会插入到第一个按钮所在的容器里。

解决方法

不需要全局查找容器,直接获取当前点击按钮对应的父级.buttonTest容器即可,修改后的JS代码如下:

window.addEventListener("load", function() {
  var addMoreButtons = document.querySelectorAll("#add-more1, #add-more2");
  addMoreButtons.forEach(function(button) {
    button.addEventListener("click", function() {
      console.log(button);
      // Create a div
      var div = document.createElement("div");

      // Create a text input
      var text = document.createElement("input");
      text.setAttribute("type", "text");
      text.setAttribute("name", "More");
      text.setAttribute("placeholder", "Weitere hinzufügen");

      // add the file and text to the div
      div.appendChild(text);

      // 仅修改这一行即可:获取当前按钮所在的.buttonTest容器插入
      button.parentElement.appendChild(div);
      // 如果担心后续DOM结构调整按钮外层多嵌套元素,可以用更稳妥的写法:
      // button.closest('.buttonTest').appendChild(div);
    });
  });
});

代码说明

button.parentElement直接拿到当前点击按钮的父元素,也就是你每个按钮外层对应的.buttonTest容器,新输入框就会插入到对应按钮的下方。如果后续你给按钮外层多套了一层标签,用button.closest('.buttonTest')会自动向上查找最近的匹配.buttonTest的元素,兼容性更好。

内容的提问来源于stack exchange,提问作者Maxl Gemeinderat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 16:00:00