2016-09-06 6 views
2

ボタンのクリックイベントにhref属性を取得します。VueJS Read Dom Attributes

<a v-on:click.prevent="func($event)" href="/user/all/2"> 
    <i class="fa fa-edit"></i> 
    <span>Get Data</span> 
</a> 

Main.JSファイル

new Vue({ 
el: 'body', 

methods: { 
    func: function (event) { 
     element = event.target; 

     console.log(element); // Output : Select span|i|a element 

     href = element.getAttribute('href'); 
    }, 
} 
}); 

対象イベントは、要素を選択しません。クリックされた要素が選択されます。

+0

。 mozilla.org/en-US/docs/Web/API/Event/currentTarget –

答えて

7

event.currentTargetを入力してください。event.targetではありません。状況の謎です:https://jsfiddle.net/crswll/553jtefh/

+0

存在しませんa * Vue.js *これを行う方法は? –

+1

いいえ、理想的にはDOMに触れる必要はありません。そのhrefは、より良い方法でアクセスするためのデータのどこかにあるはずです。この質問は、おそらくもう少し面白いもののための設定です。 –

2

これは "Vue way"です。 Vueは再利用可能なコンポーネントです。だから、最初のコンポーネントを作成します。

<script src="https://unpkg.com/vue"></script> 
 

 
<div id="app"> 
 
    <my-comp></my-comp> 
 
</div> 
 

 
<script> 
 
    // register component 
 
    Vue.component('my-comp', { 
 
    template: '<div>Just some text</div>' 
 
    }) 
 

 
    // create instance 
 
    new Vue({ 
 
    el: '#app' 
 
    }) 
 
</script>

を今すぐカスタム属性を追加し、その値を読みます。https://開発者詳細情報については

<script src="https://unpkg.com/vue"></script> 
 

 
<div id="app"> 
 
    <my-comp my-attr="Any value"></my-comp> 
 
</div> 
 

 
<script> 
 
    Vue.component('my-comp', { 
 
    template: '<div>aaa</div>', 
 
    created: function() { 
 
     console.log(this.$attrs['my-attr']) // And here is - in $attrs object 
 
    } 
 
    }) 
 

 
    new Vue({ 
 
    el: '#app' 
 
    }) 
 
</script>

関連する問題