Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery DOM操作:即使使用parseInt()两个数字之和也会生成NaN_Javascript_Jquery - Fatal编程技术网

Javascript JQuery DOM操作:即使使用parseInt()两个数字之和也会生成NaN

Javascript JQuery DOM操作:即使使用parseInt()两个数字之和也会生成NaN,javascript,jquery,Javascript,Jquery,我的页面上有多个输入type=“number”。每次用户单击“添加表单行”按钮时,它们都会自动生成。我希望在每次添加新输入时,根据这些输入的总和,为DOM中的h2元素赋值。但是,当我尝试对输入求和时,返回一个NaN。我怎样才能解决这个问题 $(文档)。在('单击','上。添加表单行',函数(e){ e、 预防默认值(); //cloneMore('.form行:last','elements'); //这里开始求和逻辑 var-tot=0; currentTotal=$('.form row'

我的页面上有多个输入type=“number”。每次用户单击“添加表单行”按钮时,它们都会自动生成。我希望在每次添加新输入时,根据这些输入的总和,为DOM中的
h2
元素赋值。但是,当我尝试对输入求和时,返回一个NaN。我怎样才能解决这个问题

$(文档)。在('单击','上。添加表单行',函数(e){
e、 预防默认值();
//cloneMore('.form行:last','elements');
//这里开始求和逻辑
var-tot=0;
currentTotal=$('.form row').find('input[type=number]')。each(function(){
numberPrice=parseInt($(this).val())
tot+=数字价格
});
$('.totalPrice').text(`${tot}`)
返回false;
});

添加

如果任何输入值为
=”
,即无,则总数将为
NaN
,因为
parseInt(“”=NaN
),因此可能添加这样的条件可以解决您的问题:

$(document).on('click', '.add-form-row', function(e){
        e.preventDefault();
        //cloneMore('.form-row:last', 'elements');
        // here starts the sum logic
        var tot = 0;
        currentTotal = $('.form-row').find('input[type=number]').each(function() {
            if($(this).val() != ""){
                numberPrice = parseInt($(this).val());
                tot += numberPrice;
            }
        });
        $('.totalPrice').text(`<span>${tot}</span>`);
        return false;
    });
$(文档)。在('单击','上。添加表单行',函数(e){
e、 预防默认值();
//cloneMore('.form行:last','elements');
//这里开始求和逻辑
var-tot=0;
currentTotal=$('.form row').find('input[type=number]')。each(function(){
if($(this.val()!=“”){
numberPrice=parseInt($(this.val());
tot+=数字价格;
}
});
$('.totalPrice').text(`${tot}`);
返回false;
});

没有数据的代码没有多大帮助。提供包含
'input[type=number]的一些实例的示例HTML
很抱歉,我添加了更多详细信息。我不想添加太多内容,因为html是用Django生成的,我害怕去OTDude。在呈现的页面上查看源代码,并复制和粘贴其中包含值的两行。没人想涉水过去,对不起。你编辑的代码现在和我的代码很相似是的,但是因为我编辑的代码是“工作”的,所以我想它显然不够相似。如果我想猜测的话,问题是JQuery的clone()工作方式的一些产物,假设您在
cloneMore中使用它