猿问

如何在javascript中强制加法而不是串联

我正在尝试像这样在我的JavaScript中添加所有卡路里含量:


$(function() {

    var data = [];


    $( "#draggable1" ).draggable();

    $( "#draggable2" ).draggable();

    $( "#draggable3" ).draggable();


    $("#droppable_box").droppable({

        drop: function(event, ui) {

            var currentId = $(ui.draggable).attr('id');

            var total = 0;

            data.push($(ui.draggable).attr('id'));


            if(currentId == "draggable1"){

            var myInt1 = parseFloat($('#MealplanCalsPerServing1').val());

            }

            if(currentId == "draggable2"){

            var myInt2 = parseFloat($('#MealplanCalsPerServing2').val());

            }

            if(currentId == "draggable3"){

            var myInt3 = parseFloat($('#MealplanCalsPerServing3').val());

            }

        if ( typeof myInt1 === 'undefined' || !myInt1 ) {

        myInt1 = parseInt(0);

        }

        if ( typeof myInt2 === 'undefined' || !myInt2){

        myInt2 = parseInt(0);

        }

        if ( typeof myInt3 === 'undefined' || !myInt3){

        myInt3 = parseInt(0);

        }

        total = parseFloat(myInt1 + myInt2 + myInt3);

        $('#response').append(total);

        }

    });

    $('#myId').click(function(event) {

        $.post("process.php", ({ id: data }), function(return_data, status) {

            alert(data);

            //alert(total);

        });

    });

});

无需添加变量,而是将它们串联在一起。我试过使用parseInt,parseFloat和Number,但是我仍然只是串联而不是加法。请在http://m


神不在的星期二
浏览 619回答 3
3回答

慕尼黑的夜晚无繁华

您的代码将三个字符串连接起来,然后将结果转换为数字。您需要通过调用每个变量将每个变量转换为数字parseFloat()。total = parseFloat(myInt1) + parseFloat(myInt2) + parseFloat(myInt3);

慕盖茨4494581

也应该能够做到这一点:total += eval(myInt1) + eval(myInt2) + eval(myInt3);这在不同但相似的情况下帮助了我。
随时随地看视频慕课网APP

相关分类

JQuery
我要回答