2017-06-03 173 views
2

我有一個表的列名是「price」。如何計算的所有產品全部價格的總和,並將其存儲在一個變量中jQuery的使用jquery計算總和

<table id ="tab"> 
    <th>Product</th><th>Price</th> 
    <tr><td>A</td><td>752</td></tr> 
    <tr><td>B</td><td>652</td></tr> 
    <tr><td>C</td><td>1000</td></tr> 
</table> 
+1

做到這一點,你生成js文件的值。儘量不要使用dom的數據。 – DragonKnight

+1

除非你報廢,否則不要使用你的dom中的數據。這實在是一個不好的做法。 –

+0

主席先生,請您詳細說明......我真的沒有想到...... @ Krishnadas Sir –

回答

3

使用本

<script> 
    var sum=0; 
    $('#tab').find('tr').each(function(i,v){ 
     sum=sum+parseInt($(this).find('td').eq(1).text()); 
    }) 
    alert(sum); 
</script> 
+0

沒有':第二個'選擇器 – charlietfl

+0

我編輯了我的答案 –

4

這個怎麼樣?

$(document).ready(function() { 
 
    var sum = 0; 
 
    $('#tab tr td:nth-of-type(2)').each(function(i, cell) { 
 
    sum += parseInt($(cell).text(),10); 
 
    }); 
 
    console.log(sum); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script> 
 
<table id="tab"> 
 
    <th>Product</th> 
 
    <th>Price</th> 
 
    <tr> 
 
    <td>A</td> 
 
    <td>752</td> 
 
    </tr> 
 
    <tr> 
 
    <td>B</td> 
 
    <td>652</td> 
 
    </tr> 
 
    <tr> 
 
    <td>C</td> 
 
    <td>1000</td> 
 
    </tr> 
 
</table>

+0

非常感謝你爵士:) –

+0

應該提供parseInt()的基數 – charlietfl

+0

@charlietfl謝謝你的信息。更新^ – Sankar

2

請嘗試以下方法

function getTotalPrice() { 
    var output = 0; 
    var priceCells = $("#tab tr td:nth-child(2)"); 
    var text; 
    var value 

    for (var i = 0, len = priceCells.length; i < len; i++) { 
     text = $(priceCells[i]).text(); 
     value = parseInt(text, 10); 
     output += value; 
    } 

    return output; 
} 
+2

'nth-child'不是零基礎 – charlietfl

+0

非常感謝你爵士:) –

+0

@charlietfl感謝您的信息! –

3

使用map()reduce()創建一個襯墊

var sum = $('tr td:nth-child(2)') 
 
    .map((_, el) => +$(el).text().trim() || 0).get() 
 
    .reduce((a, c) => a + c); 
 
    
 
console.log('Sum =',sum)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table id="tab"> 
 
    <th>Product</th> 
 
    <th>Price</th> 
 
    <tr> 
 
    <td>A</td> 
 
    <td>752</td> 
 
    </tr> 
 
    <tr> 
 
    <td>B</td> 
 
    <td>652</td> 
 
    </tr> 
 
    <tr> 
 
    <td>C</td> 
 
    <td>1000</td> 
 
    </tr> 
 
</table>

+0

非常感謝你爵士:) –

3

$(document).ready(function(){ 
 
    var total = 0; 
 
    $('tr td:nth-child(2)').each(function(){ 
 
    \t total+=parseInt($(this).text()); 
 
    }) 
 
    alert(total); 
 
})
<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.2.1.min.js"></script> 
 
<table id ="tab"> 
 
    <th>Product</th><th>Price</th> 
 
    <tr><td>A</td><td>752</td></tr> 
 
    <tr><td>B</td><td>652</td></tr> 
 
    <tr><td>C</td><td>1000</td></tr> 
 
</table>