前提・実現したいこと
JavaScriptでボタンを押したら画像が追加され、画像の数が3つより大きくなったら画像を消すという処理です。
意図した挙動にはなるのですが、エラーがでます。
https://developer.mozilla.org/ja/docs/Web/API/Node/removeChild
上記のMDNサイトにはエラーが出ると書いてあります。挙動は問題ないのですが、エラーが出たままでもよいのでしょうか?
発生している問題・エラーメッセージ
Uncaught TypeError: Failed to execute 'removeChild' on 'Node': parameter 1 is not of type 'Node'. at HTMLButtonElement.<anonymous>
該当のソースコード
JavaScript
1<body> 2 <button class="button">ボタン</button> 3 <div class="imgArea"></div> 4<script> 5 6document.querySelector('.button').addEventListener('click',() => { 7 let imgElement = document.createElement('img'); 8 imgElement.src = 'images/画像ファイル.png'; 9 10 let imgArea = document.querySelector('.imgArea'); 11 imgArea.appendChild(imgElement); 12 13 let cnt = document.images.length; 14 // console.log(cnt); 15 16 while (cnt > 3) { 17 imgArea.removeChild(imgArea.firstChild); 18 } 19}); 20 21</script> 22</body> 23
試したこと
下記のコードも同じ挙動をするのですが、同じエラーが出てしまいます。
javascript
1while (cnt > 3) { 2 imgArea.removeChild(imgArea.childNodes.item(0)); 3}
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/06/03 13:00