2405_82966844 2024-04-06 05:23 采纳率: 96.3%
浏览 1
已结题

javascript動態新增監聽

javascript動態新增監聽

Laravel動態產生按鈕button

php laravel

@foreach($result as $item)
<input type="button" name="btn" class="btn">
@endforeach

javascript如何新增監聽

javascript

var btn=document.getElementsByName('btn');
for(var i=0;i<btn.length;i++){
btn[i].addEventListener('click',function(e){
// 監聽事件
alert(i);
})
}

以上寫法,alert(i)只會出現同一個

  • 写回答

3条回答 默认 最新

  • 关注

    上午好☀️☀️☀️️
    本答案参考ChatGPT-3.5

    问题:如何在 JavaScript 中动态新增监听事件?

    解决方案:

    1.在 HTML 中为元素添加 ID 属性,以便获取并操作元素。

    2.在 JavaScript 中获取元素,可以使用 document.getElementByID() 或者 document.querySelector() 等方法。

    3.使用 addEventListener() 方法来添加事件监听器。

    4.动态添加的监听器应该放在一个函数中,该函数接收 event 参数,并在其中实现事件监听器的功能。

    5.对于动态生成的元素,可以通过将事件监听器添加到它们的父元素上,并在监听器内部通过 event.target 判断实际触发事件的元素。

    代码示例:

    HTML:

    <div id="container">
      <button class="btn">按钮1</button>
      <button class="btn">按钮2</button>
      <button class="btn">按钮3</button>
    </div>
    

    JavaScript:

    const container = document.querySelector('#container');
    container.addEventListener('click', function(event) {
      if (event.target.classList.contains('btn')) {
        const index = Array.from(container.children).indexOf(event.target);
        console.log(`你点击了第 ${index + 1} 个按钮`);
      }
    });
    

    这个代码通过获取父元素 container,将事件监听器添加到 container 上。在监听器内部使用 event.target 判断触发事件的元素,并通过indexOf()方法计算出元素的位置,从而实现在点击按钮时输出点击的按钮序号的功能。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月14日
  • 已采纳回答 4月6日
  • 创建了问题 4月6日

悬赏问题

  • ¥15 35114 SVAC视频验签的问题
  • ¥15 impedancepy
  • ¥15 在虚拟机环境下完成以下,要求截图!
  • ¥15 求往届大挑得奖作品(ppt…)
  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见