クックパットのようなレシピサイトなどによくある+を押したら入力フォームが増えるような仕組みをつくりたいです。
HTML
1 <table class="material_form"> 2 <tr class="add_form"> 3 <th> 4 <input type="text" placeholder="材料" class="material" /> 5 <input type="text" placeholder="分量" class="material" /> 6 <span class="form_plus">+</span> 7 <span class="form_minus">-</span> 8 </th> 9 </tr> 10 </table>
javascript
1 let target_forms = document.querySelectorAll(".add_form"); 2 let plus_forms = document.querySelectorAll(".form_plus"); 3 4 function add_form() { 5 let add_form_html = 6 '<tr class="add_form">' + 7 "<th>" + 8 '<input type="text" placeholder="材料" class="material" /> ' + 9 '<input type="text" placeholder="分量" class="material" /> ' + 10 '<span class="form_plus">+</span> ' + 11 '<span class="form_minus">-</span> ' + 12 "</th>" + 13 "</tr>"; 14 15 target_forms.forEach(target_form => 16 target_form.insertAdjacentHTML("afterend", add_form_html) 17 ); 18 19 } 20 plus_forms.forEach(plus_form => 21 plus_form.addEventListener("click", add_form) 22 );
この方法ですと、最初からHTMLに記載してあるコードの+を押せば新たにHTMLを生成して追加してくれるのですが、新しく生成されたHTMLの+を押しても新たなフォームを生成してくれません。
どうすれば上手く実装出来るでしょうか?
回答2件
あなたの回答
tips
プレビュー