0

次のテーブル構造があります。

<table>
 <thead>
  <tr>
   <td>id</td>
   <td>Name</td>
   <td>Total</td>
  </td>

  <tbody>

   <tr>
    <td><input type="text" name="" /></td>  
    <td><input type="text" name="" /></td>
    <td><input type="text" name="total" /></td>
   </tr>

   <tr>
    <td><input type="text" name="" /></td>  
    <td><input type="text" name="" /></td>
    <td><input type="text" name="total" /></td>
   </tr>

  </tbody>

jqueryを使用して各行の合計値を合計列に取得するにはどうすればよいですか。私はこのように試しました。

var total;

$("table tbody tr td input[type=text]").live('keyup blur', function(){

   $(this).parent('tbody tr').find('input[type=text]').each(function(){
        var tot +=  $(this).val();
   });
});
4

2 に答える 2

0

parent(); を使用するだけです。

parent() は、DOM ツリーを 1 レベル上に移動するだけです。

それはあなたをに連れて行くべきです<tr>

$(this).parent().find('input[type=text]').each(function(){
   ...
});
于 2013-02-13T06:29:42.413 に答える
0

次のように変更します。

$("table tbody tr td input[type=text]").live('keyup blur', function(){

   $(this).parent('tr').find('input[type=text]').each(function(){
        var tot +=  $(this).val();
   });
});

その理由は、<tbody>すべての<tr>s が含まれているためです。したがって、このように更新する<tr>と、現在の行のみが選択され、その中のすべての入力が選択されます。

于 2013-02-13T06:13:56.953 に答える