首页 > 解决方案 > 点击 v-for Div 获取对象数据

问题描述

我有一个带有 v-for 的 div,我想获取我单击的 div 的对象值。当我单击带有警报的 div 时,我尝试在数据中显示,但它不起作用。你能帮我解决这种情况吗?

<div id="ticketContent" v-for="ticket in tickets" @click="getTicketInformations">
              <h5> Ticket : {{ ticket.ticketID }}</h5>
              <p>Ticket Number : {{ticket.ticketNumber}}</p>
              <p>Start Date : {{ticket.startDate}}</p>
              <p>Expire Date : {{ticket.expireDate}}</p>
              <p>Hours : {{ ticket.hours }} </p>
            </div>

state : {
   tickets :[
            {"ticketID":1001,
            "ticketNumber":"2783sA",
            "startDate":"05/10/2018",
            "expireDate":"10/21/2022",
            "hours":"08:00-22:00"},
            {"ticketID":1002,
            "ticketNumber":"8a210j",
            "startDate":"01/03/2018",
            "expireDate":"01/03/2020",
            "hours":"14:00-18:00"},
            {"ticketID":1003,
            "ticketNumber":"L90Np1",
            "startDate":"10/01/2015",
            "expireDate":"10/01/2020",
            "hours":"10:00-20:00"},
            {"ticketID":1004,
            "ticketNumber":"L90Np1",
            "startDate":"05/01/2015",
            "expireDate":"05/01/2016",
            "hours":"15:00-23:00"}],
}
<script>
import { mapGetters } from 'vuex';

export default {
    computed: {
      ...mapGetters({
        tickets : 'tickets'
      }),
    },
    methods : {
      getTicketInformations(){
        alert(ticket)
      }
    }
}
</script>

标签: javascriptarraysvue.jsvuex

解决方案


尝试这个:

改变 vfor

<div id="ticketContent_(index)" v-for="(ticket, index) in tickets" @click="getTicketInformations(index)">

和方法:

getTicketInformations(index){
        alert("clicked on ->" + document.getElementById(ticketContent_' + index + '))
      }

推荐阅读