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

Vue中点击事件如何获取元素内容作为函数参数?

在Vue中获取点击元素的innerText的解决方案

你遇到的问题核心是:Vue模板的事件表达式里,this指向的是Vue组件实例,而非触发事件的DOM元素,所以无法通过this.innerText拿到目标内容。下面是几种可靠的实现方式:

方法1:直接在模板中通过$event传递元素文本

利用Vue提供的$event内置变量,获取绑定事件的DOM元素的innerText:

<span @click="somefunc($event.currentTarget.innerText)">blah</span>
  • $event是当前触发的事件对象
  • currentTarget始终指向绑定事件的DOM元素(如果span内部有子元素,target可能指向子元素,用currentTarget更稳妥)

方法2:在方法中通过事件对象获取文本

模板里只传递事件对象,在方法内部提取文本:

<span @click="somefunc">blah</span>

对应的组件方法:

methods: {
  somefunc(event) {
    const elementText = event.currentTarget.innerText;
    // 这里写你的业务逻辑
  }
}

这种方式更灵活,适合需要对DOM元素做更多操作的场景。

方法3:(可选)结合ref(适合单个固定元素)

如果是单个固定的span,也可以用ref直接获取元素:

<span ref="mySpan" @click="somefunc">blah</span>

方法里:

methods: {
  somefunc() {
    const elementText = this.$refs.mySpan.innerText;
    // 业务逻辑
  }
}

注意:如果是v-for循环生成的多个span,ref会变成数组,需要额外处理索引,不如前两种方法通用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 03:03:09