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

Vue按钮点击无法获取并打印id与name值,求问题排查

问题分析与解决方案

问题根源

  • 重复绑定点击事件导致首次点击无输出:你已经通过Vue的@click绑定了addNewEntry方法,在方法内部又用原生JS给按钮新增了一个click事件监听器。第一次点击按钮时,只会执行监听器的添加逻辑,不会触发刚绑定的监听器,因此没有日志输出;只有第二次及之后点击,才会触发这个新增的监听器打印内容。
  • 写法不符合Vue设计思路:Vue提供了更简洁的属性获取方式,无需使用原生document.getElementById和addEventListener,这种冗余写法容易引发事件绑定混乱。

正确写法示例

方式1:通过事件对象直接获取属性

<v-btn id="mytest" name="test" @click="addNewEntry">{{'add '}}</v-btn>

methods: {
  addNewEntry(event) {
    console.log('id value ', event.target.id);
    console.log('name value ', event.target.name);
  },
}

Vue会自动将事件对象作为参数传递给绑定的方法,直接接收event即可获取触发元素的属性。

方式2:使用Vue的ref获取元素(适合需直接操作元素的场景)

<v-btn ref="myBtn" id="mytest" name="test" @click="addNewEntry">{{'add '}}</v-btn>

methods: {
  addNewEntry() {
    const btn = this.$refs.myBtn;
    console.log('id value ', btn.id);
    console.log('name value ', btn.name);
  },
}

给按钮添加ref属性后,可通过this.$refs直接获取元素实例,更符合Vue组件化开发的规范。

内容的提问来源于stack exchange,提问作者nidhou gsm

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 21:12:38