2015-07-03 86 views
0

我已經然後如下表:HTML表 - 遍歷行,總結的字段

<table style="width:100%" id="testTable"> 
    <tr> 
     <th>length per</th> 
     <th>width per</th> 
     <th>length</th> 
     <th>width</th> 
     <th>total</th> 
    </tr> 
    <tr align='right'> 
     <td> 
      <input type="text" name="length-per-input"> 
     </td> 
     <td> 
      <input type="text" name="width-per-input"> 
     </td> 
     <td> 
      <input type="text" name="length-total-input"> 
     </td> 
     <td> 
      <input type="text" name="width-total-input"> 
     </td> 
     <td> 
      <input type="text" name="total-output" disabled="disabled"> 
     </td> 
    </tr> 
    <tr align='right'> 
     <td> 
      <input type="text" name="length-per-input"> 
     </td> 
     <td> 
      <input type="text" name="width-per-input"> 
     </td> 
     <td> 
      <input type="text" name="length-total-input"> 
     </td> 
     <td> 
      <input type="text" name="width-total-input"> 
     </td> 
     <td> 
      <input type="text" name="total-output" disabled="disabled"> 
     </td> 
    </tr> 
</table> 

<input type=button value='+' onclick="addRow()" /> 
<input type=button value='Calculate' onclick="Calculate()" /> 

我也有增加的值,並把它在總的JavaScript:

<script> 
    function Calculate() { 
     var lengthPerInput = $("input[name='length-per-input']").val(); 
     var widthPerInput = $("input[name='width-per-input']").val(); 
     var lengthTotal = $("input[name='length-total-input']").val(); 
     var widthTotal = $("input[name='width-total-input']").val(); 
     var total = (lengthTotal/lengthPerInput) + (widthTotal/widthPerInput); 
     $("input[name='total-output']").val(total); 
    } 
</script> 

目的這裏是讓它迭代兩行,然後分別添加每一行。 我知道如何使用獲得的每一行:

$('#testTable tr').each(function(){ 
    console.log(this); 
    $(this).find('length-per-input').each(function(){ 
     console.log(this); 
    }) 
}) 

但使用行,我不知道怎麼才能得到正確的細胞,讓他們的價值(通過「本」訪問),然後進行計算該行的總數。

對此有任何建議嗎?謝謝!

回答

1
function Calculate(tr_row) { 
     var lengthPerInput = tr_row.find("input[name='length-per-input']").val(); 
     var widthPerInput = tr_row.find("input[name='width-per-input']").val(); 
     var lengthTotal = tr_row.find("input[name='length-total-input']").val(); 
     var widthTotal = tr_row.find("input[name='width-total-input']").val(); 
     var total = (lengthTotal/lengthPerInput) + (widthTotal/widthPerInput); 
     tr_row.find("input[name='total-output']").val(total); 
    } 

對於每次調用函數薩姆值 要你通過該行的函數行,那麼就可以在該行

$('#testTable tr').each(function(){ 
    Calculate($(this)) 
}) 
+0

這裏是一個工作的jsfiddle http://jsfiddle.net/L662eq91/ – Su4p

+0

完美的作品,感謝,感激的快速響應的輝煌! – Gary

0

可以使用each()功能通過table遍歷收集值並使用find()函數查找cell值。

function Calculate() { 
    $('#testTable tr').each(function() { 
    var lengthPerInput = $(this).find("input[name='length-per-input']").val(); 
    var widthPerInput = $(this).find("input[name='width-per-input']").val(); 
    var lengthTotal = $(this).find("input[name='length-total-input']").val(); 
    var widthTotal = $(this).find("input[name='width-total-input']").val(); 
    var total = (lengthTotal/lengthPerInput) + (widthTotal/widthPerInput); 
    $(this).find("input[name='total-output']").val(total); 
    }); 
} 

Working Plunker

How to get a table cell value using jQuery?