iT邦幫忙

0

js 顯示與 text() 加總的問題?

這是我用 click 觸發的 event:

$('.cart_subtotal_'+prod_id).html(newVal*price);

newVal 是數量
price 是商品單價

在HTML上顯示

每個商品的小計沒問題(商品乘以數量)
但,現在是要將cart_subtotal(subtotal)這些值都相加,然後印到別處去
我要如何在觸發按鈕的同時
可以同時相加這些值?
我想到的是這樣的寫法

var subtotal = parseInt($('.subtotal').text());
    $('.total-price-display').html(subtotal);

(我在 cart_subtotal 添加 subtotal 了)
當然無法運行
思路已死
請問一下能實現這種效果的函數是...?

2 個回答

1
froce
iT邦大師 3 級 ‧ 2018-06-27 15:37:41
最佳解答

我懂了,你其實問題出在不太理解html的class和id用法。
我寫一段簡單的給你看好了。

https://jsbin.com/pixixupoxa/1/edit?html,output

從你的code看到

$('.cart_subtotal_'+prod_id).html(newVal*price);

表示你的每個小計的class是 cart_subtotal_[prod_id]
如果id都不重複,何必都給一個class?

小松 Nana iT邦研究生 3 級 ‧ 2018-06-27 15:46:35 檢舉

a+b我會,但是因為是array(多個),要怎麼相加?

froce iT邦大師 3 級 ‧ 2018-06-27 16:07:01 檢舉

你可以去jsbin試試看,多資料也一樣啊。
JQ的each很好用。

0

應該是想問subtotal一次取到多個值,怎麼加總吧
如下:
html

 <button id="cal">計算</button>
  <table>
    <thead>
      <tr>
        <th>小計</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td class="subtotal">300</td>
      </tr>
      <tr>
        <td class="subtotal">200</td>
      </tr>
    </tbody>
    <tfoot>
      <tr>
        <td colspan="2">總計</td>
        <td id="total"></td>
      </tr>
    </tfoot>
  </table>

js

  $("#cal").click(function(){
     var total = 0;
    $(".subtotal").each(function(){
      total += parseInt($(this).text())
    });
    $('#total').text(total);
  });
看更多先前的回應...收起先前的回應...
小松 Nana iT邦研究生 3 級 ‧ 2018-06-27 16:14:41 檢舉

原來是用 each 這個函數

一句話就能問完,妳扯太多了,很容易搞不清楚妳想問啥~

小松 Nana iT邦研究生 3 級 ‧ 2018-06-28 10:44:55 檢舉

如何一句話就能問完?

「$('.subtotal').text() 會一次取到多個值,怎麼加總?」 這樣不是一句話就問完嗎? 不過要放上你的html就是了~
/images/emoticon/emoticon10.gif

我要發表回答

立即登入回答