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

将其更改为:

$("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 回答
0

你可以只使用 parent();

parent() 仅在 DOM 树上单层遍历。

所以这应该带你去<tr>

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