Javascript 为什么';each()函数是否与连接到DOM的输入一起工作?

Javascript 为什么';each()函数是否与连接到DOM的输入一起工作?,javascript,jquery,Javascript,Jquery,我试图使用.each()函数从输入中捕获值,但是它只适用于DOM中存在的输入 我正在使用jQuery插入更多的HTML条目。这些添加的输入没有绑定到DOM中,因此使用.on()将这些字段附加到DOM中 我的目标是将用户添加的每个输入的所有值相加 以下是代码的摘录: $("form").on("click", "#calc", function () { var total = 0; $('#1 .val').each(f

我试图使用
.each()
函数从输入中捕获值,但是它只适用于DOM中存在的输入

我正在使用jQuery插入更多的HTML条目。这些添加的输入没有绑定到DOM中,因此使用
.on()
将这些字段附加到DOM中

我的目标是将用户添加的每个输入的所有值相加

以下是代码的摘录:

$("form").on("click", "#calc", function () {
    var total = 0;
    $('#1 .val').each(function(){    /* HERE IS THE PROBLEM */
       var valor = Number($(this).val());
       if (!isNaN(valor)) total += valor;
    });
    alert(total);
});

对于我的网站

而言,问题是由于缺少一个
字符,该字符界定了您为附加的
输入
元素提供的
id
,因此
丢失

要解决这个问题,您可以使用模板文本,这样就不需要意大利面字符串连接,还可以删除动态内容上的
id
属性,因为这是一种反模式。这将为您提供更简单的代码,更易扩展,更易于维护

试试这个:

$(文档).ready(函数(){
$(“表单”)。在(“单击”,“添加campo”,函数()上{
让$container=$(this).closest('.descripao_-rot');
让qtd_input=$container.find('.val').length;
如果(qtd_输入<10){
$container.append(`
Valor`); }否则{ 警惕(“Ainda nãoépossivel adicionar mais descripções”); } }); $(“表格”)。在(“单击”,“计算”,函数()上){ var合计=0; $('.val')。每个((i,el)=>total+=Number(el.value)| | 0); 警报(总数); }); });



直径1

英勇 +

结石的
请添加所需的html以重现您的问题。输入的id属性缺少结束引号: