現在jQueryを使い、要素を追加する処理を作成しております。
<td>の下に<div>要素があり、これを増やす処理を行っており、要素の追加は うまくいっているのですが、この<div>内の子<input>等のid及びnameの 属性名変更がうまくいきません。 現象として、1つ目の子要素の属性名は変更されますが、2つ目以降が変更 されない状況です。jQueryに詳しい方、ご教授お願いします。
PHP
1<table> 2 <tbody> 3 <tr> 4 <td> 5 <input type="button" name="addBtn" id="addBtn" value="追加" /> 6 </td> 7 <td id="hogehuga"> 8<?php 9for ( $i = 0; $i < $count; $i++ ) { 10?> 11 <div> 12 <input type="text" id="hogeNm_<?= $i ?>" name="hogeNm_<?= $i ?>" /> 13 <select id="hogeSel_<?= $i ?>" name="hogeSel_<?= $i ?>"> 14 <option value="0">hoge</option> 15 <option value="1">huga</option> 16 </select> 17 <input type="checkbox" id="hogeChk_<?= $i ?>" name="hogeChk_<?= $i ?>" />hoge 18 <input type="checkbox" id="hugaChk_<?= $i ?>" name="hugaChk_<?= $i ?>" />huga 19 <input type="button" name="btnGO" value="GO" /> 20 </div> 21<?php 22} 23?> 24 </td> 25 </tr> 26 </tbody> 27 <script> 28 $(function() { 29 // +ボタン押下時 30 $('#addBtn').click(function(e) { 31 // 入力項目を増やす(コピー) 32 $('#hogehuga div:last-child').clone(true).appendTo($('#hogehuga')); 33 34 // 追加分の項目のidとnameを変更 35 var cnt = 3; // ←実際には別場所からのカウントを使ってます。 36 $('#hogehuga div:last-child').children('input:nth-child(1)').attr({id:'hogeNm_' + cnt, name:'hogeNm_' + cnt}); 37 $('#hogehuga div:last-child').children('input:nth-child(2)').attr({id:'hogeChk_' + cnt, name:'hogeChk_' + cnt}); 38 $('#hogehuga div:last-child').children('input:nth-child(3)').attr({id:'hugaChk_' + cnt, name:'hugaChk_' + cnt}); 39 $('#hogehuga div:last-child').children('select:nth-child(1)').attr({id:'hogeSel_' + cnt, name:'hogeSel_' + cnt}); 40 }); 41 }); 42 </script> 43</table> 44 45
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/13 05:34
2019/11/13 05:44
2019/11/13 05:45
2019/11/14 07:08