>

여러 테이블이 있는데 테이블 당 합계를 얻고 싶습니다. 바이올린 데모를 참조하십시오.

var total = 0;
$("table").each(function(i){
    total += +$('.a', this).text() || 0;
    console.log( 'total: '+total );
    $("#subtotal", this).text( total );
    //console.log( '-'+$('.a', this).text() );
});

https://jsfiddle.net/juandela/6r1g30dx/2/


  • 답변 # 1

    var total=0 를 움직여야합니다  테이블 루프 내부에서 각 테이블에 대해 재설정

    그런 다음 개별 셀의 텍스트를 얻으려면 각 셀을 반복해야합니다.

    모든 $('.a', this).text() 를 얻는 문제  모든 요소 텍스트를 하나의 문자열로 연결하므로 "1357" 와 같은 숫자가 표시됩니다.  첫 번째 표의 총계

    마지막으로 페이지에서 ID를 반복 할 수 없으므로 부분 합계를 클래스로 변경

    $("table").each(function(i) {
      var total = 0;
      $('.a', this).each(function() {
        total += +$(this).text() || 0;
      });
      $(".subtotal", this).text(total);
    });
    
    
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <table>
      <tr>
        <td class="a">1</td>
        <td>2</td>
      </tr>
      <tr>
        <td class="a">3</td>
        <td>4</td>
      </tr>
      <tr>
        <td class="a">5</td>
        <td>6</td>
      </tr>
      <tr>
        <td class="a">7</td>
        <td>8</td>
      </tr>
      <tr>
        <td class="subtotal"></td>
      </tr>
    </table>
    <hr>
    <table>
      <tr>
        <td class="a">1</td>
        <td>2</td>
      </tr>
      <tr>
        <td class="a">3</td>
        <td>4</td>
      </tr>
      <tr>
        <td class="a">5</td>
        <td>6</td>
      </tr>
      <tr>
        <td class="a">7</td>
        <td>8</td>
      </tr>
      <tr>
        <td class="a">9</td>
        <td>10</td>
      </tr>
      <tr>
        <td class="a">11</td>
        <td>12</td>
      </tr>
      <tr>
        <td class="subtotal"></td>
      </tr>
    </table>
    
    

관련 자료

  • 이전 c# - Visual Studio에서 KeyDown 이벤트, KeyPress 이벤트 및 KeyUp 이벤트의 차이점
  • 다음 python - 다음 열에 CSV를 쓰는 방법