4

入力からdivの小数に小数を追加できる必要があります。以下は私のコードです。現時点では、隣り合った 2 つの数値を連結しているだけです。ありがとう。

編集済み:作業コード

<div id="addme">5.01</div>
<input type="text" id="anumber" value="">
<button id="add">Add Number to div</button>

$('#add').click(function() {
var number = parseFloat($('#anumber').val()) || 0;
//alert(number);
$('#addme').html(function(i, val) {
return (parseFloat(val) + number).toFixed(2);
});
});

以下の古い非動作コード:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>

<div id="addme">5.01</div>

<input type="text" id="anumber" value="" />

<button id="add">Add Number to div</button>

<script type="text/javascript">
    $('#add').click(function(){
        var number = $('#anumber').val();
        if(number=='undefined' || number==''){
            var number=0;
        }
        //alert(number);
        $('#addme').html(function(i, val) {return val*1+number });
    });
</script>
4

6 に答える 6

1

10進数を扱っているので、次を使用しますparseFloat()

$('#add').click(function() {
    var number = parseFloat($('#anumber').val()) || 0;
    $('#addme').html(function(i, val) {
        return parseFloat(val) + number;
    });
});​

http://jsfiddle.net/mblase75/47t7x/

アップデート

浮動小数点演算エラーが発生する可能性があるため (「0.6」と入力してみてください)、値を返す前に適切な小数点以下の桁数に丸める必要があります (ドルとセントを扱う場合は 2、その他の単位を扱う場合は 7 以上)。

$('#add').click(function() {
    var number = parseFloat($('#anumber').val()) || 0;
    $('#addme').html(function(i, val) {
        return parseFloat((parseFloat(val) + number).toFixed(9)); 
    });
});​

http://jsfiddle.net/mblase75/47t7x/1/

于 2012-05-22T18:51:57.403 に答える
0

コードでは、連結ではなく合計が必要なようです。ここでの連結は合計のコードです。オブジェクトが使用可能になる前にコードが実行されていたため、それを $(document).ready に配置する必要があります。

    $(document).ready(function() {
        $('#add').click(function(){
            var number = $('#anumber').val();
            if(number=='undefined' || number=='')
                number=0;
            var target=$('#addme');
            target.html(1*target[0].innerHTML+1*number);
        });
    });

連結が必要な場合は、 1* を削除するだけです

于 2012-05-22T19:06:25.667 に答える
0

これには parseInt() を使用する必要があります。

$('#addme').html(function(i, val) {return parseInt(val,10)+parseInt(number,10) });
于 2012-05-22T18:48:47.227 に答える
0

文字列を実際の数値に解析していることを確認してください。

function(i, val) {return parseFloat(val)*1+parseFloat(number) }
于 2012-05-22T18:49:36.173 に答える
0
// On the click event of #add
$('#add').on("click", function(){
    // n is equal to #anumber, or 0 if #anumber is blank
    var n = $('#anumber').val() || 0
    // Determine new HTML content for #addme
    $('#addme').html(function(i,v) {
        // Return the sum of n and v floated, to two decimal places
        return ( parseFloat(n) + parseFloat(v) ).toFixed(2);
    });
});​

フィドル: http://jsfiddle.net/G8nka/1/

于 2012-05-22T18:50:08.770 に答える
0

文字列を数値に変換するには、+文字列値の前にトリックを使用できます。文字列値を数値に変換します。このコードは正常に動作します:

$('#add').click(function() {
    var number = +$('#anumber').val() || 0;
    $('#addme').html(function(i, val) {
        return (+val + number).toFixed(2);
    });
});​

デモ: http://jsfiddle.net/K9g49/

于 2012-05-22T18:51:57.263 に答える