javascript - Use vue.js to achieve the effect: click li, get the html value of the current click li, and the parameter this becomes the window object?
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-06-14 10:54:14
0
4
965

The effect to be achieved:

  • Click li to get the html value of the currently clicked li;

Main code

<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>

Problem Description:

The this passed after clicking li is printed as the window object, not the li object, so the object cannot be found; how to pass the current li object to js?

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

reply all(4)
小葫芦

Read the documentation carefully...don't make assumptions about these inexplicable usages.

When an inline event needs to access the original event object, just add the $event parameter to it. Like this:

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

To get the object of the current li tag, just read the currentTarget attribute under the event object, that is, event.currentTarget.

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

Add a ref attribute to li and then get the dom node through this.$refs in methods

typecho

Test possible:

<li @click="aa($event)" v-for="item in items">{{item}}</li>
  methods:{
    aa:function(event){
        console.log(event.target.innerHTML);
    }
  }
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template