2017-01-26 11 views
-2

Hallo baute ich die unten stehende Skript mit vorhandenen Elementen arbeiten wir an der Stelle nicht kontrollieren und es zurückkehrt:Funktioniert in jsFiddle aber nicht auf der Website?

weitere £ NaN Verbringen wir kostenlose Standard-Lieferung

so gingen zu empfangen zu schreiben eine Abfrage auf Stackoverflow um herauszufinden, warum und dachte, ich JSfiddle verwenden würde, aber genau das gleiche Code in JSfiddle setzen, um richtig läuft und zeigt:

verbringen Sie eine weitere £ 9 kostenlose Standard-Lieferung

012 empfangen

So bin ich noch verwirrter, eine Idee, was das Problem ?:

$(document).ready(function() { 
 

 
    var subTotal = ($('.totalSubtotal').text()).replace(/[^0-9.]/g, '') 
 
    var startTotal = 70.00; 
 
    var total = startTotal - subTotal; 
 

 

 
    $('#revealPromoBox').append('<div class="promoTotal">Spend another £' + total + ' to recieve free standard delivery</div>'); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div class="totalSubtotal"> 
 
    Sub-total:&nbsp;<strong data-oi-price="">£61</strong> 
 
</div> 
 

 

 
<h3 id="revealPromoBox"></h3>

JSFiddle

+2

Siehe den Abschnitt ** Related ** auf der rechten Seite? Versuchen Sie eine dieser Fragen. Stellen Sie sicher, dass jQuery auf Ihrer Site geladen ist und überprüfen Sie Ihre Konsole auf Fehler. – j08691

+0

Überprüfen Sie die Browser-Konsole auf Fehler. –

+0

Der einzige Grund, warum Sie 'NaN' erhalten könnten, ist, wenn' subTotal' einen String-Wert enthält, der nicht in eine Zahl konvertiert werden kann. Debuggen Sie Ihren Code und überprüfen Sie den Wert auf Ihrer Website. Z.B. Wenn die Zeichenfolge etwas wie "3.4.5" ist, dann würde das in "NaN" umgewandelt werden. –

Antwort

1

Es gibt mehr als ein totalSubtotal ist wahrscheinlich auf der Website sein könnte und nur ein Hier und in JSFiddle - 10.0030.00 wäre NaN, da .text() die gefundenen Strings verketten würde

$(function() { 
 

 
    var subTotal = 0; 
 
    $('.totalSubtotal').each(function() { 
 
    var val = $(this).text().replace(/[^0-9.]/g, ''); 
 
    subTotal += isNaN(val)?0:parseFloat(val); 
 
    }); 
 
    var startTotal = 70.00; 
 
    var total = startTotal - subTotal; 
 

 

 
    $('#revealPromoBox').append('<div class="promoTotal">Spend another £' + total.toFixed(2) + ' to recieve free standard delivery</div>'); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div class="totalSubtotal"> 
 
    Sub-total:&nbsp;<strong data-oi-price="">£11.00</strong> 
 
</div> 
 
<div class="totalSubtotal"> 
 
    Sub-total:&nbsp;<strong data-oi-price="">£21.00</strong> 
 
</div> 
 

 

 
<h3 id="revealPromoBox"></h3>

Verwandte Themen