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

Vue.js点击卡片触发click事件获取数组对应项描述返回undefined如何解决

问题原因
  • 点击事件未传参:你在v-for循环内绑定点击事件时,没有将当前遍历得到的choc对象传入handleTileClick方法,方法无法获取被点击卡片对应的数组项数据。
  • 非法访问不存在的实例属性:你的Vue实例data中仅声明了数组chocs,没有名为choc的顶层属性,this.choc本身为undefined,访问this.choc.description自然返回undefined。
修复步骤
  1. 修改HTML中点击事件的绑定逻辑,传入当前对应的choc对象:
<div class="carousel-cell-card" v-on:click="handleTileClick(choc)"></div>
  1. 修改JS中的handleTileClick方法,接收传入的参数并使用:
methods: {
  handleTileClick: function(choc){
    $("#fox").append(`<div id="popover-dialog">data here: ${choc.description}</div>`);
  }
}
优化建议(可选)

Vue项目中不推荐混合使用jQuery操作DOM,你可以用原生Vue的方式实现同样的效果:

  1. 在data中新增一个数组用于存储需要展示的描述内容:
data: {
  chocs: [/* 原有数据 */],
  showDescList: []
}
  1. 修改点击方法,往数组中追加内容:
handleTileClick: function(choc){
  this.showDescList.push(choc.description)
}
  1. 修改页面#fox区域的渲染逻辑:
<div id="fox">
  <div v-for="(desc, index) in showDescList" :key="index" id="popover-dialog">
    data here: {{ desc }}
  </div>
</div>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 06:06:03