Javascript 如果一个类中存在同一个类,如何确定多个输入字段的总和<;td>;不是<;td>&书信电报;输入>;

Javascript 如果一个类中存在同一个类,如何确定多个输入字段的总和<;td>;不是<;td>&书信电报;输入>;,javascript,html,Javascript,Html,我不能在表上用td“jumlah”来表示“总计” $(document).on(“change”,“.jumlah”,function()){ var总和=0; $(“.jumlah”)。每个(函数(){ sum+=+$(this.val(); }); 美元(“.total”).val(总和); }); 我期望jumlah的total输出我创建了一个非常简单的示例,其中包含了您需要的内容,我认为您可以轻松地在代码中实现类似的内容 $('.jumlah')。在('input',functio

我不能在表上用td“jumlah”来表示“总计”


$(document).on(“change”,“.jumlah”,function()){
var总和=0;
$(“.jumlah”)。每个(函数(){
sum+=+$(this.val();
});
美元(“.total”).val(总和);
});

我期望jumlah的total输出

我创建了一个非常简单的示例,其中包含了您需要的内容,我认为您可以轻松地在代码中实现类似的内容

$('.jumlah')。在('input',function()上{
让elementsToSum=$(document.find('.jumlah');
设和=0;
for(让element of element stosum){
//将的值解析为整数
让eleIntValue=parseInt($(ele.html());
如果(!isNaN(eleIntValue)){
//仅当其为数字(非空)时才将其添加到总和中
总和+=元素值;
}
}
//使用新的计算和更改的值
$('总计').val(总和);
});
td{
宽度:50px;
}



具有
[contenteditable]
属性的元素将不具有
[value]
属性,因为:

  • 只有非交互、非无效、流动和短语元素(如
    等)可以具有
    [contenteditable]
  • 只有
    等表单控件才能具有
    [value]
    属性
  • 因此,不要使用
    .val()
    而是使用
    .text()
    ,因为文本是非表单控件标记之间的内容。重要的变化是三元:

    如果这是一个输入,则获取其值,否则获取其文本

    小的改变是:

    • 输入事件而不是更改,因为它看起来很光滑
    • 表单注册到输入事件,而不是文档
    $('.totals')。在(“输入”,“小计”,函数()上){
    设和=0;
    $(“.subtotal”)。每个(函数(){
    sum+=$(this.is('input')?+$(this.val():+$(this.text();
    });
    美元(“.total”).val(总和);
    });
    
    :root{font:700 16px/1.2控制台}
    输入、输出、数据{显示:内联块;字体:继承;文本对齐:右;宽度:125px;}
    输出,数据{宽度:50px}
    数据{轮廓:1px实心#aaa;填充:2px 17px 2px 0px;边距:1px 0px 1px 2px;宽度:110px}
    
    0
    0
    0
    总数:0
    
    添加一些
    console.log()
    ,并诊断问题。是否正在启动该函数?sum加起来正确吗?你也可以发布你的html吗?好的,你需要使用
    input
    事件处理程序:我不认为
    onchange
    是合适的事件处理程序,你不应该在上面使用
    keyup
    吗?请不要问
    <script>
    $(document).on("change", ".jumlah", function() {
        var sum = 0;
        $(".jumlah").each(function(){
            sum += +$(this).val();
        });
        $(".total").val(sum);
    });
    </script>
    
    <input type="text" id="total" class="total" value=""  />
    
    sum += $(this).is('input') ? +$(this).val() : +$(this).text();