2013-10-11 89 views
0

嗨我需要在表格中填寫以下表格。以表格形式處理表格的每一行

 <form id="eForm" action=""> 
       <table class="fMain" border="1" cellpadding="0" cellspacing="0"> 
       <tbody>   
       <tr class="ist"> 
        <td>In work</td> 
        <td>09/25/2013</td> 
        <td><input type="text" value="3500.00" name="salesS" id="totalS" class="fo" readonly=""></td>     
        <td ><input type="text" value="23.00" name="cusS" id="cusS" class="form-field-tiny readonly" readonly=""></td> 
        <td>0.66%</td>           
       </tr> 
       <td>In work</td> 
        <td>09/25/2013</td> 
        <td><td id="salesS" style="tar">$345.00</td></td>     
        <td id="custS" style="tar">$223.00</td> 
        <td>0.66%</td>      
       </tr>        
      </tbody> 
      </table> 
      </form> 

在我的jquery部分,我使用下面的代碼來迭代拋出每一行。

$('.fMain').each(function() { 
       var num = document.getElementById('totalS').innerHtml; 
       var cNum = document.getElementById('cusS').innerHtml; 
       alert(num); 
       alert(cNum); 
       formatCurrency(num, cNum); 
      }); 

當它運行時,我可以看到。每次通過的行數,但由於某種原因,NUM和CNUM值會是一樣的第一行。 這裏有什麼問題?幫我修復。謝謝

+0

'$('。f Main')。each(function(){'你實際上循環遍歷每個表格,而不是表格中的每一行.... –

+0

可以使用$('tr')。each(function(){ alert ( 「#totalS」)VAL())。 });請參閱http://jsfiddle.net/U2Gt3/ –

回答

0

需要使用class屬性,而不是idinput標籤

<form id="eForm" action=""> 
      <table class="fMain" border="1" cellpadding="0" cellspacing="0"> 
      <tbody>   
      <tr class="ist"> 
       <td>In work</td> 
       <td>09/25/2013</td> 
       <td><input type="text" value="3500.00" name="salesS" class="totalS fo" readonly=""></td>     
       <td ><input type="text" value="23.00" name="cusS" class="cusS form-field-tiny readonly" readonly=""></td> 
       <td>0.66%</td>           
      </tr> 
      <tr> <!-- missing tr tag here --> 
      <td>In work</td> 
       <td>09/25/2013</td> 
       <td><td id="salesS" style="tar">$345.00</td></td>     
       <td id="custS" style="tar">$223.00</td> 
       <td>0.66%</td>      
      </tr>        
     </tbody> 
     </table> 
     </form> 



$('.fMain tr.ist').each(function() { 
      var num = $(this).find('.totalS').val(); 
      var cNum = $(this).find('.cusS').val(); 
      alert(num); 
      alert(cNum); 
      formatCurrency(num, cNum); 
     }); 
0

而不是document.getElementById('totalS')它將只選擇給定id的元素,使用this來獲取當前行。

this.innerHTML; 
+0

你的意思是這個('totalS')那樣? –

+0

@ J.Davidson編輯。 –

0

原因是,你得到它的ID。在html中,你不應該有很多具有相同ID的元素。瀏覽器只是首先返回找到你。

0

首先糾正你的HTML標記,所有的標籤都沒有正確關閉

第二隻使用一個jQuery的或JavaScript爲您選擇

jQuery的解決方案

$('#eForm table tr').each(function() { 
      alert($('#totalS').val()); 
      alert($('#cusS').val()); 

      //your processing here 
    }); 

Demo Fiddle

0
  • 使用.valueinnerHTML得到<input>值:

    VAR NUM =的document.getElementById( '彩民')值; var cNum = document.getElementById('cusS')。value;

  • 此外,您的表格缺少一個<tr>並在<td>內有<td>。它看起來像我無效的標記。

  • 使用它來獲取rowrs的對象數組:$('.fMain tr')不僅僅是$('.fMain')

0

試試這個:

$('#eForm table tr').each(function() { 
     var ts = $(this).find('#totalS').val(); 
});