javascript - 如何實現表格自動合計
黄舟
黄舟 2017-07-01 09:11:59
0
3
944
ID 字段1 字段2 字段3 字段4
1 11 12 13 14
2 22 26 28 27
合計

    <table id="mytable" border="1" width="37%">
  <thead>
    <tr>
    <td width="63" >ID</td>
    <td width="68" >字段1</td>
    <td width="62" >字段2</td>
    <td width="75" >字段3</td>
    <td>字段4</td>
  </tr>
  </thead>

  <tr>
    <td>1</td>
    <td width="63" >11</td>
    <td width="68" >12</td>
    <td width="62" >13</td>
    <td width="75" >14</td>
  </tr>
  <tr>
    <td>2</td>
    <td width="63" >22</td>
    <td width="68" >26</td>
    <td width="62" >28</td>
    <td width="75" >27</td>
  </tr>
  <tr id="totalRow">
    <td>合计</td>
    <td width="63" ></td>
    <td width="68" ></td>
    <td width="62" ></td>
    <td width="75" ></td>
  
  </tr>
</table>


剛學前端 有大神知道下如何用JQ將每列自動合計到合計那裡麼
一個頁面有好多個這樣的表格要統計Q_Q

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回覆(3)
为情所困

注意HTML結構,你寫了thead卻沒有寫body,修改如下:

<table id="mytable" border="1" width="37%">
<thead>
    <tr>
        <td width="63">ID</td>
        <td width="68">字段1</td>
        <td width="62">字段2</td>
        <td width="75">字段3</td>
        <td>字段4</td>
    </tr>
</thead>
<tbody>
    <tr>
        <td>1</td>
        <td width="63">11</td>
        <td width="68">12</td>
        <td width="62">13</td>
        <td width="75">14</td>
    </tr>
    <tr>
        <td>2</td>
        <td width="63" >22</td>
        <td width="68" >26</td>
        <td width="62" >28</td>
        <td width="75" >27</td>
    </tr>
</tbody>
<tfoot>
    <tr id="totalRow">
        <td>合计</td>
        <td width="63"></td>
        <td width="68"></td>
        <td width="62"></td>
        <td width="75"></td>
    </tr>
</tfoot>
</table>

其中,theadtbodytfoot都分開,thead為表頭不遍歷,tbody為遍歷部分,tfoot為匯總部分,

var sum = new Array(+$('#mytable thead tr td:not(:first-child)').length).fill(0);

$('#mytable tbody tr').each(function() {
    $(this).children('td:not(:first-child)').each(function() {
        var index = $(this).index() - 1;

        sum[index] += +$(this).text();
    });
});

$('#mytable #totalRow td:not(:first-child)').each(function() {
    var index = $(this).index() - 1;

    $(this).text(sum[index]);
});

Update

這裡有幾個知識點:

  1. new Array()構造新數組

  2. .fill()填充數組

  3. 選擇器:not():first-child的用法

  4. 字串或數字前面加上+強轉成數字

  5. 賦值運算子+=的使用

某草草

希望你能理解
html程式碼

<table border="" cellspacing="" cellpadding="">
        <tr>
            <th>ID</th>
            <th>字段1</th>
            <th>字段2</th>
            <th>字段3</th>
            <th>字段四</th>
        </tr>
        <tr id="shuju_0">
            <td>数据1</td>
            <td>12</td>
            <td>21</td>
            <td>25</td>
            <td>2</td>
        </tr>
        <tr id="shuju_1">
            <td>数据2</td>
            <td>32</td>
            <td>16</td>
            <td>42</td>
            <td>21</td>
        </tr>
        <tr id="shuju_2">
            <td>合计</td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
    </table>

js程式碼

var shuju0 =$("#shuju_0").children(),
        shuju1=$("#shuju_1").children(),
        shuju2=$("#shuju_2").children();
        for(var i=1;i<shuju0.length;i++){
            console.log($(shuju0[i]).text());
            $(shuju2[i]).text($(shuju0[i]).text()*1+$(shuju1[i]).text()*1);
        }
世界只因有你

jquery each遍歷每一列,加起來放到最後一行就OK了

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!