jQueryのhtml()メソッドを使用し、指定した部分にhtml()の引数を挿入したいと考えています。しかし、実際に以下のコードを記入したところ挿入できていませんでした。
誤っている部分を教えていただけますよう、お願いいたします。
html
1<tr> 2 <!--品番・品名--> 3 <td>{{Form::text('billing_item[]', $val->billing_item,['class' => 'validate', 'id' => 'billing_item'])}}</td> 4 <!--数量--> 5 <td><input type="text" name="quantity[]" value="{{$val->quantity}}" class="validate quantity" id="quantity"></td> 6 <!--単位--> 7 <td>{{Form::text('unit[]', $val->unit,['class' => 'validate', 'id' => 'unit'])}}</td> 8 <!--単価--> 9 <td><input type="text" name="bill_unit_price[]" value="{{ceil($val->bill_unit_price)}}" class="validate bill_unit_price" id="bill_unit_price"></td> 10 <!--金額--> 11 <td><span class="ans"></span></td> 12 <td><a href="#" data-id="{{$val->id}}" class="waves-effect waves-light btn del">削除</a> 13 </td> 14 {{Form::hidden('bill_id[]', $val->id)}} 15 </tr>
jQuery
1<script> 2 $( '.quantity,.bill_unit_price' ).on('keyup',function() { 3 var $_t = $( this ).parent(); 4 var quantityVal = $_t.find( '.quantity' ); 5 var num01 = quantityVal.val(); 6 var bill_unitVal = $_t.find( '.bill_unit_price' ); 7 var num02 = bill_unitVal.val(); 8 var sum = num01 * num02; 9 $('.ans').html(sum); 10 } ); 11 </script>
また同様にブラウザからソースコードを確認したところ、やはり 「<td><span class=”ans”></span></td>」の部分には何も挿入されておりませんでした。
developer toolも確認しましたがエラーは確認できませんでした。
上記の問題に対して私が行ったのは以下の手法です。
(a)挿入したい<span>タグをclass名ではなくid属性に設定。
変更点→ <td><span class=”ans”></span></td>
変更点→ $(‘#ans’).html(sum);
(b)html()メソッドではなく、text()メソッドを使用する
変化なし
(b)htmlメソッドの引数に直線、変数同士の掛け算を挿入
変更点→ $(‘.ans’).html(num01 * num02);
いずれもエラーは生じず、ただ<td><span>タグ内に表示されないという結果となりました。
ちなみに、num01 * num02という計算自体はデータ上行われているため、
「$(‘.ans’).html(sum);」より上の部分については間違っておらず、
$(‘.ans’).html(sum);の部分、もしくは<td><span class=”ans”></span></td>の部分に誤りがあるのではないか、と考えています。
参考にしたサイト
https://ameblo.jp/linking/entry-10046762170.html
https://teratail.com/questions/127796
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。