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

如何使用jQuery选中所有按钮并在点击时弹窗显示对应name属性值

解决jQuery点击按钮获取对应name属性的问题

常见错误原因

代码失效通常是这几个问题导致的:

  • 直接获取所有按钮的name属性,拿到的是第一个按钮的值,而非当前点击的按钮
  • 动态生成的按钮用了普通事件绑定,新添加的按钮没绑定上事件
  • 用了箭头函数,导致this指向错误,无法获取当前点击元素

静态按钮的实现方法

如果按钮是页面加载时就存在的,直接给按钮绑定点击事件即可:

HTML示例

<button name="user-info">用户信息</button>
<button name="settings">设置</button>
<button name="logout">退出登录</button>

jQuery代码

$('button').click(function() {
  // 获取当前点击按钮的name属性
  const btnName = $(this).attr('name');
  alert(btnName);
  // 也可以用console.log输出到控制台
  // console.log(btnName);
});

这里$(this)指向当前被点击的按钮元素,通过attr('name')就能精准拿到对应的值。


动态按钮的实现方法

如果按钮是后续通过JS动态添加到页面的(比如异步加载后生成),必须用事件委托:

HTML示例

<div id="btn-wrapper">
  <button name="add-item">添加项目</button>
  <!-- 后续会动态插入更多按钮 -->
</div>

jQuery代码

// 把事件绑定到父容器上,委托给内部的button元素
$('#btn-wrapper').on('click', 'button', function() {
  const btnName = $(this).attr('name');
  alert(btnName);
});

事件委托的核心是利用事件冒泡,父容器能捕获到内部元素的点击事件,不管按钮是一开始就有还是后来添加的,都能正常触发。


避坑提醒

  • 不要用箭头函数写点击事件回调:箭头函数的this不会指向当前点击的元素,会导致$(this)失效
  • 不要直接写$('button').attr('name'):这只会获取页面中第一个按钮的name值,不是当前点击的那个

内容的提问来源于stack exchange,提问作者Pranav K M

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 01:15:33