2012-03-05 11 views
1

私はDIVを持っていますが、これは私がアクセス権を持たないサーバーサイドスクリプトによって供給されていて、その値を£で出力します。jQueryにDIVの数値コンテンツから数学的計算をさせることは可能ですか?

HTML例:

<div id="totalExpenditure">£1,125</div> 

私は、jQueryのスクリプトは、その数字とワークアウトに£2,000のセット値との差を取ると、他のDIVにそれを結果にしたいです。言う

<div id="totalSurplus">You have £725 remaining.</div>

私はmathmatic jQueryのためにGoogleで検索したが、結果はあまりにも複雑に見えます。私がよく分からないことは、ID totalExpenditureの出力をDOMに変換して操作することさえ可能です。

+4

jQueryは数式を実行しません。 JavaScriptはそうします。 –

答えて

3

1)文字列を取得:var myVal = $('#totalExpenditure').text()

2)非数値シャープ記号を取り除きます: myVal = myVal.replace('£','')コンマmyVal = myVal.replace(',','')

3)数にそれを回す:myVal = parseFloat(myVal)

4)myValで必要な数式を実行します。

これはすべて1つのステップで実行できますが、言語の仕組みがわかります。

+0

数字の中の '、'について忘れないでください。 –

+0

Ack、そうですよ!失敗します! –

+0

こんにちはDiodeus、あなたの入力に感謝します。 (そして私はコンマについてのポイントではない)。あなたが投稿したオリジナルのスクリプトを使用しましたが、私はNaNを取得します。 £とコンマの両方を削除するにはどうすればよいですか? var num = parseFloat($( "#totalExpenditure")。text()。replace( "£"、 "")); – JayDee

1

クライアントにHTMLを供給するのと同じ方法で、サーバーからクライアントのJavaScriptエンジンに値(£1,125)を送ることができます。

テキストノードのDOM要素を読み取り、そのノードを数学演算の値として解釈することは、実際にはお勧めできません。これを計算するには、JavaScriptの変数を用意しておいてください。

+0

「本当にお勧めしない」のはなぜですか? –

+0

毎回整数に戻す必要があるためです。ノード値がクライアント側で変更されなかったと仮定して、£1,125から1125に変更する必要があります。 –

+0

確かに、質問にはOPがページの生成方法を制御していないことが明確に記載されています。 –

2

ここには2つの問題があります。

まず、文字列を解析して数値に変換する必要があります。

次に、計算を実行する必要があります。

どちらも実際にはjquery固有のものではありません。 JQueryは、文字列を取得し、出力を書くのを助けることができますが、残りは純粋なjavascriptです。通貨の出力をより細かく制御するために

var num = parseFloat($("#totalExpenditure").text().replace("£", "")); 

var remain = 2000 - num; 

var outputStr = "You have £" + remain.toFixed(2) + " remaining"; 

$("#totalSurplus").text(outputStr); 

おそらくこの記事をチェックアウト:How can I format numbers as money in JavaScript?

+1

数字から '、'を削除しないと、 'remain'は' NaN'になります。 –

0
  1. (正規表現を使用して)totalExpenditure divのコンテンツと設定totalExpenditureするvar値を取得:。

    するvar内容= $( '#のtotalExpenditure')テキスト();

    var pattern = /[0-9\.,]/g;

    var totalExpenditure =パターン。exec(content);

  2. 減算

    するvar totalImport = 2000;

    var result = totalImport - totalExpenditure;

関連する問題