🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Q&A

解決済

2回答

1468閲覧

vueを使用してbuttonを押すことで自分自身と親を削除するようにしたい

kentooooo

総合スコア18

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

0グッド

0クリップ

投稿2019/11/20 06:53

前提・実現したいこと

表題の通り、buttonを押すことで
自分とその親を削除したいです

該当のソースコード

html

1<div id="app"> 2 <div id="dom1"> 3 <button id="button" @click="deleteDom">削除</button> 4 </div> 5</div> 6 78 9<div id="app"> 10 11</div> 12 13にしたい 14

js

1 2window.Vue = require('vue'); 3 4const app = new Vue({ 5 el: '#app', 6 data: {}, 7 methods: { 8 deleteDom:function(){ 9 //この中身がわかりません 10 //描いてみたのは以下の通りです 11      let delete = document.getElementById("button"); 12  delete.parentNode.removeChild(button); 13 } 14 }

補足情報(FW/ツールのバージョンなど)

vue使用中です。
初心者です。理解不足なところ、足りないところありましたらご指摘ください

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

DOMを直接削除というよりはv-ifでフラグによって描画させないようにしてはどうでしょうか。

html

1<div id="app"> 2 <div id="dom1" v-if="!deleteFlag"> 3 <button id="button" @click="deleteDom">削除</button> 4 </div> 5</div>

js

1window.Vue = require('vue'); 2 3const app = new Vue({ 4 el: '#app', 5 data() { 6 return { 7 deleteFlag: false 8 } 9 }, 10 methods: { 11 deleteDom() { 12 this.deleteFlag = true 13 } 14 } 15})

投稿2019/11/20 07:15

nt4c

総合スコア768

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kentooooo

2019/11/20 11:31

一応jsfiddleで動作確認したのですが、何も動作しないので困っています…
nt4c

2019/11/21 01:30 編集

jsfiddleで確認する際はrequireではなくjsfiddleのリソースにvue.jsを追加してからご確認ください。 https://jsfiddle.net/0vy5j17z/
kentooooo

2019/11/21 01:34

できました。なるほどです。 本当にありがとうございました!
guest

0

ベストアンサー

自分とその親を削除

親の掴み方次第ですね
「#dom1」を利用していいなら

javascript

1const app = new Vue({ 2el: '#app', 3data: {}, 4methods: { 5deleteDom:function(){ 6 var del=document.querySelector('#dom1'); 7 del.parentNode.removeChild(del); 8} 9} 10}); 11

自分をベースに、親とその親を利用するなら

javascript

1const app = new Vue({ 2el: '#app', 3data: {}, 4methods: { 5deleteDom:function(e){ 6 var del=e.target.parentNode; 7 del.parentNode.removeChild(del); 8} 9} 10});

投稿2019/11/20 07:12

yambejp

総合スコア116694

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kentooooo

2019/11/20 17:54

ありがとうございました。 無事実装完了しました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問