2016-03-18 10 views
2

イムで$または£を検索と置換JS/jQueryのに少し新しいと、このサイトは非常に私は機能がとてもJSを回避しようとすると多くを行うカントshopifyであるが、私は取得する必要がありします...jQueryのHTML値を取得し、コンテンツ

任意のアイデアを価値は、通貨はその後、それらを一緒に追加して、再表示を取り除くが、これは限りアイブが得たとしてではなく動作していないのですか?

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

に結果を設定するためのHTMLは、私はあなたの正規表現が間違っていると思う...「動作しない」 – Connum

+0

を指定してください。 $記号は文字列の終わりを意味します。あなたは\ – CyberAleks

+0

でそれをエスケープする必要があります。私は\前$を追加しましたが、コンソールで見ると$(...)。html(...)replaceTextは関数ではありません – James

答えて

3
バックスラッシュを使用して正規表現$をエスケープ

テキストは、ちょうどここでparseFloat(a, 10)

+0

私は試しました:var a = $( "。 cart-total span ").html()。replaceText(/ \ $ |£/ gi、" ");var b = $( "#推定配送em")。html()。replaceText(/ \ $ |£/ gi、 "");あれは正しいですか?申し訳ありません私は新しいHERESにJS – James

+0

に素晴らしい仕事https://jsfiddle.net/7cwk4a1n/1/ –

+0

が、私は(2)小数をしたが、クールなおかげで働いた – James

1

を使用して数値にこれらの文字列を変換もtext().replace(/\$|£/gi, '')

を使用する実施例であるjQueryの関数ではありません、しかし、あなたは間違っているように思われ、ここでのドルやポンドを追加して交換してください。

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

いや、何故か何かの理由でカートを買い物かごに入れて出荷しているのを知っていて、今は一時的な固定具としてJSに置き換える理由は分かりません。 – James

0

私の提案は次のとおりです。代わりに

  • あなたが代わる彼らに
  • 使用を追加した後
  • 正規表現ラウンド番号に形式[$£]を使用することができますエスケープしますreplaceTextの代わりに
  • の代わりにテキストを使用スパン

$(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>