偶尔还是会陷入到DOM操作上面去,其实你应该关心的是数据传递,而不是操作DOM。如果你是想获取data-num的数据,可以这样写:


<span  @click="getData($event,'21')">55</span>

getData:function (e,num) {
             console.log(num)

}

这样就可以取到这个值了,如果你是确实想操作DOM,那你可以这样写:

<span data-num="21" ref="dataNum"  @click="getData($event)">55</span>

getData:function (e) {
        console.log(this.$refs.dataNum.dataset.num);
    }


2.通过 e . target . getAttribute
  <div id="app">
        <span data-num="21" @click="getData($event)">55</span>
    </div>

new Vue({
     el:'#app',
     methods:{
         getData:function (e) {
             console.log(e.target.getAttribute('data-num'))
         }
     }
 })

3.自定义命名

如:html        : <div class="live-dd" numId = "<{$item.id}>"></div>

js:

$('.live-dd').on("click",function(){var num = this.getAttribute('numId');location.href='/live/info?id='+num;})

使用jq的方法

<span class="vk_cq5" classid="<{$smarty.get.id}>">

var live_id = $('.vk_cq5').attr('classid')

     ref的用法  相当于操作dom
html : 

  1. <div>  
  2.     <div id="box" ref="mybox">  
  3.       DEMO  
  4.     </div>  
  5.   </div>
js:
  1. export default {  
  2.   data () {  
  3.     return {  
  4.         
  5.     }  
  6.   },  
  7.   mounted () {  
  8.     this.init();  
  9.   },  
  10.   methods:{  
  11.     init() {  
  12.       const self = this;  
  13.       this.$refs.mybox.style.color = 'red';  
  14.       setTimeout(() => {  
  15.         self.$refs.mybox.style.color = 'blue';  
  16.       },2000)  
  17.     }  
  18.   }  
  19.   
  20. }  


Logo

前往低代码交流专区

更多推荐