2016-03-18 42 views
2

我有点新的JS/jQuery和这个网站是shopify所以我不能做太多的功能,所以试图解决与JS,但我需要抓住价值,剥离货币,然后将它们添加在一起,并重新显示,但这是尽可能得到,但没有工作...

任何想法?

setTimeout(function() { 
 
    var a = $(".cart-total span").html().replaceText(/$|£/gi, ""); 
 
    var b = $("#estimated-shipping em").html().replaceText(/$|£/gi, ""); 
 
    var total = a + b; 
 
    $('.cart-finalTotal span').html("£" + total); 
 
    console.log(total); 
 
}, 1000);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div class="cart-right"> 
 

 

 
    <p class="cart-total">Sub-Total<span class="money">£249.00</span> 
 
    </p> 
 
    <p class="cart-vat">VAT 20% (included)<span class="money">£49.80</span> 
 
    </p> 
 
    <p class="cart-delivery">Delivery<span class="money" id="estimated-shipping">+ <em>$9.00</em></span> 
 
    </p> 
 
    <p class="cart-finalTotal">Total<span class="money">£249.00</span> 
 
    </p> 
 
    <div class="cart-checkout"> 
 

 

 
    <button class="button button-primary button-add-to-cart button-pay-now" type="submit" name="checkout"><span class="icom-lock"></span>Pay Now</button> 
 

 
    <br> 
 
    <br> 
 

 

 
    <div class="additional-checkout-buttons"> 
 
     <p>Or checkout with</p> 
 
     <img id="applePayButton" style="display: none" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" onload="typeof createApplyPayButton === 'function' ? createApplyPayButton(this) : window.addEventListener('applePayReady', (function(){createApplyPayButton(this)}).bind(this))"> 
 
     <input type="image" name="goto_pp" value="paypal_express" src="https://www.paypalobjects.com/en_US/i/btn/btn_xpressCheckout.gif"> 
 
    </div> 
 

 
    </div> 
 

 
</div>

+0

请注明“不工作” ...... – Connum

+0

我觉得你的正则表达式是错误的。 $符号表示字符串结尾。你应该使用\ – CyberAleks

+0

来避免它\ \在$之前添加\但在控制台中我看到:$(...)。html(...)。replaceText不是函数 – James

回答

3

使用反斜线正则表达式$。

替换文本不是一个jQuery功能只需使用text().replace(/\$|£/gi, '')

而且通过使用parseFloat(a, 10)

+0

我试过了:var a = $(“。 cart-total span“)。html()。replaceText(/ \ $ |£/ gi,”“); var b = $(“#estimated-shipping em”)。html()。replaceText(/ \ $ |£/ gi,“”);那是对的吗?对不起,我是新来的JS – James

+0

继承人一个小提琴的例子https://jsfiddle.net/7cwk4a1n/1/ –

+0

这很好,我加入总.toFixed(2),使小数,但工作很酷谢谢 – James

1

这里是工作示例转换这些字符串到数字,但是要添加美元和英镑在这里,这似乎是错误的。

setTimeout(function() { 
 
    var a = parseFloat($(".cart-total span").text().replace(/\$|£/gi, "")); 
 

 
    var b = parseFloat($("#estimated-shipping em").text().replace(/\$|£/gi, "")); 
 
    var total = a + b; 
 
    $('.cart-finalTotal span').html("£" + total.toFixed(2)); 
 

 
}, 1000);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="cart-right"> 
 

 

 
    <p class="cart-total">Sub-Total<span class="money">£249.00</span> 
 
    </p> 
 
    <p class="cart-vat">VAT 20% (included)<span class="money">£49.80</span> 
 
    </p> 
 
    <p class="cart-delivery">Delivery<span class="money" id="estimated-shipping">+ <em>$9.00</em></span> 
 
    </p> 
 
    <p class="cart-finalTotal">Total<span class="money">£249.00</span> 
 
    </p> 
 
    <div class="cart-checkout"> 
 

 

 
    <button class="button button-primary button-add-to-cart button-pay-now" type="submit" name="checkout"><span class="icom-lock"></span>Pay Now</button> 
 

 
    <br> 
 
    <br> 
 

 

 
    <div class="additional-checkout-buttons"> 
 
     <p>Or checkout with</p> 
 
     <img id="applePayButton" style="display: none" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" onload="typeof createApplyPayButton === 'function' ? createApplyPayButton(this) : window.addEventListener('applePayReady', (function(){createApplyPayButton(this)}).bind(this))"> 
 
     <input type="image" name="goto_pp" value="paypal_express" src="https://www.paypalobjects.com/en_US/i/btn/btn_xpressCheckout.gif"> 
 
    </div> 
 

 
    </div> 
 

 
</div>

+1

是的,我知道,由于某种原因,它将shopify购物车中的货运作为$,并且不知道为什么现在要用JS代替它作为临时装置。 – James

0

我的建议是:

  • ,而不是逃避,你可以将它们添加
  • 使用更换后
  • 轮号使用的格式[$£]在正则表达式而不是替换文字
  • 使用文字代替HTML结果设置到跨度中

$(function() { 
 
    setTimeout(function() { 
 
    var a = $(".cart-total span").html().replace(/[$£]/gi, ""); 
 
    var b = $("#estimated-shipping em").html().replace(/[$£]/gi, ""); 
 
    var total = parseFloat(a) + parseFloat(b); 
 
    total = parseFloat(Math.round(total * 100)/100).toFixed(2); 
 
    $('.cart-finalTotal span').text("£" + total); 
 
    console.log(total); 
 
    }, 1000); 
 
});
<script src="http://code.jquery.com/jquery-1.12.1.min.js"></script> 
 

 

 
<div class="cart-right"> 
 

 

 
    <p class="cart-total">Sub-Total<span class="money">£249.00</span> 
 
    </p> 
 
    <p class="cart-vat">VAT 20% (included)<span class="money">£49.80</span> 
 
    </p> 
 
    <p class="cart-delivery">Delivery<span class="money" id="estimated-shipping">+ <em>$9.00</em></span> 
 
    </p> 
 
    <p class="cart-finalTotal">Total<span class="money">£249.00</span> 
 
    </p> 
 
    <div class="cart-checkout"> 
 

 

 
     <button class="button button-primary button-add-to-cart button-pay-now" type="submit" name="checkout"><span class="icom-lock"></span>Pay Now</button> 
 

 
     <br> 
 
     <br> 
 

 

 
     <div class="additional-checkout-buttons"> 
 
      <p>Or checkout with</p> 
 
      <img id="applePayButton" style="display: none" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" onload="typeof createApplyPayButton === 'function' ? createApplyPayButton(this) : window.addEventListener('applePayReady', (function(){createApplyPayButton(this)}).bind(this))"> 
 
      <input type="image" name="goto_pp" value="paypal_express" src="https://www.paypalobjects.com/en_US/i/btn/btn_xpressCheckout.gif"> 
 
     </div> 
 

 
    </div> 
 

 
</div>

相关问题