javascript - Utiliser vue.js pour obtenir l'effet suivant : cliquer sur li, obtenir la valeur HTML du clic li actuel et le paramètre this devient l'objet window ?
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-06-14 10:54:14
0
4
993

L'effet à obtenir :

  • Cliquez sur li pour obtenir la valeur html du li actuellement cliqué ;

Code principal

<body>
<p id="page">
    <ul>
        <li v-on:click="aa(this)" v-for="item in items">{{item}}</li>
    </ul>
</p>
<script type="text/javascript">
new Vue({
  el: '#page',
  data: {
        items:[11,22,33,44]
  },
  methods:{
    aa:function(obj){
        console.log(obj);  //打印出来的是 window对象?
        alert(obj.html());   //找不到点击的值;
    }
  }
})
</script>
</body>

Description du problème :

Le this passé après avoir cliqué sur li est imprimé en tant qu'objet window, pas en tant qu'objet li, donc l'objet ne peut pas être trouvé, comment transmettre l'objet li actuel à js ?

曾经蜡笔没有小新
曾经蜡笔没有小新

répondre à tous(4)
小葫芦

Lisez attentivement la documentation... ne faites pas d'hypothèses sur ces utilisations inexplicables.

Lorsqu'un événement en ligne doit accéder à l'objet événement d'origine, ajoutez-y simplement $event paramètres. Comme ça :

<li v-on:click="aa($event)" v-for="item in items">{{item}}</li>

Vous devez avoir le courantli标签的对象,读取事件对象下的currentTarget属性就行了,即event.currentTarget.

女神的闺蜜爱上我
<li @click="aa(item)" v-for="item in items">{{item}}</li>
aa(item) {
  console.log(item) // 当前li的内容
}
左手右手慢动作

Ajoutez un attribut ref à li, puis récupérez le nœud dom via this.$refs dans les méthodes

typecho

Test possible :

<li @click="aa($event)" v-for="item in items">{{item}}</li>
  methods:{
    aa:function(event){
        console.log(event.target.innerHTML);
    }
  }
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal