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

q-btn组件自定义属性role-id取值返回null,如何解决?

解决q-btn自定义属性点击获取值为null的问题

问题原因

q-btn是Quasar封装的组件,点击事件的e.target指向的是组件内部实际触发点击的元素(比如图标、按钮内部的span标签),而非q-btn本身,因此找不到你绑定的role-id属性。

解决方案

1. 使用currentTarget替代target

currentTarget始终指向绑定事件的元素(即q-btn组件本身),修改点击事件代码即可:

const editRole = (e) => {
  console.log(e.currentTarget.getAttribute('role-id'));
}

2. 直接传递role.id作为点击事件参数(推荐)

这是更符合Vue开发习惯的方式,无需操作DOM获取属性:

<q-btn @click="editRole(role.id)" round color="primary" icon="edit" />
const editRole = (roleId) => {
  console.log(roleId);
}

3. 使用符合HTML规范的data-*属性

HTML自定义属性建议以data-为前缀,Vue中绑定后可通过dataset快速获取:

<q-btn @click="editRole" :data-role-id="role.id" round color="primary" icon="edit" />
const editRole = (e) => {
  // 两种获取方式均可
  console.log(e.currentTarget.getAttribute('data-role-id'));
  console.log(e.currentTarget.dataset.roleId); // dataset会自动将连字符属性转为驼峰命名
}

内容的提问来源于stack exchange,提问作者Mishen Thakshana

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 02:09:13