Jdery'de td'den toplamı alın

Sınıftan toplam tutarı hesaplamaya çalışıyorum. Aşağıdaki işlevi kullanıyorum ama aşağıdaki gibi yanlış çıktı alıyorum

7,240.00,640.00,8,440.00,10,940.00

Fakat beklenen çıktım hepsinin toplamı

7,240.00+640.00+8,440.00+10,940.00 = Total

Jquery Fiddle

var PITotalAMount = 0;   
$(".HomePIAmtTot").each( function(){
          PITotalAMount += $(this).html();
});

 console.log(PITotalAMount);

Bunu nasıl başarabilirim ? Neyi yanlış yapıyorum?

1
@saty neden? ......
katma yazar Royi Namir, kaynak
bu nasıl kullanılır?
katma yazar user2598136, kaynak

7 cevap

Alınan html'den , 'u kaldırmanız, kayan sayıya dönüştürmek için .parseFloat() ' ı kullanmanız ve ardından ekleri yapmanız gerekir:

$(".HomePIAmtTot").each( function(){
      PITotalAMount += parseFloat($(this).html().replace(",",""));
});

console.log(PITotalAMount.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","));

Çalışma Demosu

4
katma
@ user2598136: yardımcı olduğu için memnunum.
katma yazar Milind Anantwar, kaynak
bir cazibe gibi çalışmak ve sizin de eksplantınız için teşekkürler
katma yazar user2598136, kaynak
site kabul edeceğinizde bir kez cevap vermeyince hasta bunu tekrar yapın
katma yazar user2598136, kaynak

Başka bir çözüm :( bir dizgeden önce eklendiğinde bir sayı olan + işaretini fark eder)

  var PITotalAMount = 0;   
$(".HomePIAmtTot").each( function(){
          PITotalAMount += +$(this).html().replace(",","");
});

   console.log(PITotalAMount);

http://jsfiddle.net/pbo5bker/3/

1
katma
@MilindAnantwar soruyu anlamadım mı? sayıları toplar
katma yazar Royi Namir, kaynak
@MilindAnantwar evet :-)
katma yazar Royi Namir, kaynak
ayrıştırma değeri ne olacak
katma yazar Milind Anantwar, kaynak
vay ... bu aslında ayrıştırma olmadan çalışır.
katma yazar Milind Anantwar, kaynak

Bu kodu değiştir

$(this).html();

içine

parseFloat($(this).html().replace(",",""));
1
katma

gerek:

  1. virgülleri kaldırın
  2. bir sayıya td içindeki metni (html değil) ayrıştırın ve ekleyin.

benim önerim:

var PITotalAMount = 0;  
$(".HomePIAmtTot").each( function(){
      PITotalAMount += parseInt($(this).text().replace(',',''));
});

umarım yardımcı olur.

0
katma
Cevabınız için teşekkürler -
katma yazar user2598136, kaynak

Bir html öğesinden aldığınızda değeri çözümlemeli ve doğru fiyatı düşürmek için "," yerine null değeri koymalısınız

var PITotalAMount = 0;   
$(".HomePIAmtTot").each( function(){
      PITotalAMount += parseFloat($(this).html().replace(',', '')); 
     //alert(PITotalAMount);
});
console.log(PITotalAMount);

HERE is the Fiddle

0
katma

Sorun, html() 'in bir string döndürmesidir, bu yüzden onu bir sayıya dönüştürmeniz gerekir.

var PITotalAMount = 0;   
$(".HomePIAmtTot").each( function(){
    PITotalAMount += parseFloat($(this).html().replace(',', ''));
});

console.log(PITotalAMount);
0
katma
teşekkürler mc onun da iyi çalışıyor teşekkürler
katma yazar user2598136, kaynak

Budur.

var PITotalAMount = 0;   
$(".HomePIAmtTot").each( function(){
    PITotalAMount += parseInt($(this).html().replace(/,/g , ""));
});
console.log('Total' + PITotalAMount);

https://jsfiddle.net/irfanfiddle/pbo5bker/1/

0
katma
cevabın için teşekkürler
katma yazar user2598136, kaynak