3

これまでのところ、スニペットで構成されているこれがあります。私はJavaScriptの専門家ではないので、誰かが私が次のことを達成するのを手伝ってくれるなら、私は非常に感謝し、今日何か新しいことを学ぶことを願っています:)

私は次のことを達成したい:

ユーザーが入力フィールドに1000000と入力すると、表示される結果は次のようになります。

  1. 100万ドル以上
  2. 100万ドル未満
  3. 97万ドルから130万ドルの間

現在、価格に数字を正しく表示することはできますが、価格の最後に百万、千、百という単語を追加する方法がわかりません。さらに、中間価格部分の価格に3%を減算し、3%を加算する方法がわかりません。

これまでの私のコードは次のとおりです。

<input type="text" id="price" class="liveprice" value="<?php echo $myprice; ?>" >   
<p>Higher than <span id="higher"><?php echo $myprice;?></span></p>
<p>Lower than <span id="lower"><?php echo $myprice;?></span></p> 
<p>In between <span id="between"><?php echo $myprice;?></span></p> 

<script type="text/javascript">
// make sure it adds commas and dots to price
$.fn.digits = function() {
    return this.each(function() {
        $(this).text($(this).text().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,"));
    })
}

// update in real time
$("input.liveprice").keyup(function() {

    var value = $(this).val();

    $("#higher").text(value).digits();
    $("#lower").text(value).digits();
    $("#between").text(value).digits();

}).keyup();
</script>
4

1 に答える 1

4

100万を超えるかどうかを知りたい場合は、その数を100万で割ってから、を使用して数値を四捨五入しMath.floor()ます。答えがゼロより大きい場合、それはあなたが持っている「何百万」です。次に、次のようなものを使用して百万という単語を挿入できます(ここにいくつかのものを追加する必要があります):

var val = $('your input').val()/1000000;
if (Math.floor(val) > 0) {
    $('your element with words').text( val + " million" );
}

1000についても同じことを行いますが、1000000ではなく1000で除算します。

于 2011-11-11T04:37:11.513 に答える