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);
            });

実行すると、 .each が行数を通過するのがわかりますが、何らかの理由で num と cNum の値が最初の行と同じです。ここで何が問題なのですか?修正を手伝ってください。ありがとう

4

6 に答える 6

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);
        });
于 2013-10-11T06:51:57.793 に答える
0

document.getElementById('totalS')指定された ID を持つ要素のみを選択する代わりに、this現在の行を取得するために使用します。

this.innerHTML;
于 2013-10-11T06:47:06.150 に答える
0

これを試してください:

$('#eForm table tr').each(function () {
         var ts = $(this).find('#totalS').val();
});
于 2013-10-11T06:54:26.360 に答える
0

その理由は、id で取得するためです。HTML では、同じ ID を持つ要素を多く持つべきではありません。ブラウザは、最初に見つけたものを返すだけです。

于 2013-10-11T06:48:06.707 に答える
0

最初に HTML マークアップを修正します。すべてのタグが適切に閉じられていません

次に、選択として jquery または javascript を 1 つだけ使用します

Jquery ソリューション

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

             //your processing here
    });

デモフィドル

于 2013-10-11T06:48:26.017 に答える