お疲れ様です。
独学で進めており、詰まってしまった為、質問させて戴きます。
実現したいことの流れ
[日記]
ページ移動をせず、ページ一枚で完結させたい。
+ボタンをクリック → 投稿内容入力 → 投稿ボタンをクリック → コンテンツ生成
詰まっている点:
投稿ボタンを押した時のイベントを設定しているが、初期画面では要素がまだ生成されておらず、エラーが出る。
この問題の解決のため、どういった内容を学べばよろしいでしょうか。
TypeError: Cannot read property 'addEventListener' of null
at HTMLDocument.<anonymous> (main.js:19)
html
1<div id="main"> 2 <div id="contents"> 3 4 5 </div> 6 <i class="fas fa-plus add-content-btn fa-3x"></i> 7 </div>
javascript
1document.addEventListener('DOMContentLoaded', function() { 2 const head_title = document.getElementById('title'); 3 const submit_btn = document.querySelector('.submit-btn'); 4 5const add_btn = document.querySelector('.add-content-btn').addEventListener('click', function() { 6 addContent(); 7 this.style.display = 'none'; 8},false); 9 10 11 12submit_btn.addEventListener('click', function() { 13 showContent_ite(); 14},false); 15 16 17function addContent() { 18 let div = document.createElement('div'); 19 div.className= 'content'; 20 div.innerHTML = '<form><input class="mini-title" name="title" type="text" size="50" placeholder="タイトル"><br><textarea maxlength="300" placeholder="内容" class="mini-content"></textarea><br><span class="sub-title">※テキストが入ります。テキストが入ります。テキストが入りま</span><br><div class="submit-area"><br><input class="submit-btn" type="button" value="投稿する"></div></div></form>'; 21 let contents = document.getElementById('contents'); 22 contents.appendChild(div); 23} 24 25function showContent_item() { 26 let div = document.createElement('div'); 27 div.className= 'content_item'; 28 div.innerHTML = '<h2 class="item-title"></h2>'; 29 content_item.appendChild(div); 30 31 32}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/26 12:03