Javascript 如何插入.each(函数())

Javascript 如何插入.each(函数()),javascript,jquery,Javascript,Jquery,这是我的代码: $("table.order-list").find('input[name^="total"]').each(function () { grandTotal += +$(this).val(); valNum.find('input[name^="percentage"]').val((totalTime / grandTotal * 100).toFixed(1)); }); 如何在此代码中插入循环:valNum.find('inp

这是我的代码:

$("table.order-list").find('input[name^="total"]').each(function () {
        grandTotal += +$(this).val();
        valNum.find('input[name^="percentage"]').val((totalTime / grandTotal * 100).toFixed(1));
    });
如何在此代码中插入循环:
valNum.find('input[name^=“percentage”]”)val((totalTime/grandTotal*100).toFixed(1))。
我想循环或调用所有
输入[name^=“percentage”]
来重新计算公式

如果您想查看代码流程,请访问以下链接: 其工作原理如下:按数量输入值,并通过单击复选框尝试在第一行中插入值,它将自动计算“总时间”、“百分比”、“时间估计”列。对于第二行插入值也是一样,请注意第一行的百分比会发生变化,但这不是该行的确切结果,因为当您将所有百分比相加时,它应该是100%。这就是为什么我要问如何插入。代码中的每个函数:
valNum.find('input[name^=“percentage”]).val((totalTime/grandTotal*100).toFixed(1))
以便重新计算公式。

编辑:

在查看代码并进行适当分析之后。我想这就是你很久以来一直在寻找的东西(至少3天):)

在代码中替换整个js。我已经改变了你的代码很多。请参见此处的工作演示:


我希望这就是你需要的。如果这对您有帮助,请将其标记为答案。

为什么不在
find('input[name^=“percentage”]”)之后添加
,就像您在第一行所做的那样?您的意思是:valNum.find('input[name^=“percentage”]”)。each().val((totalTime/grandTotal*100)。toFixed(1));?不工作。:(您可以发布html dom结构吗?为什么要插入循环?请检查我的答案,看看这是否是您要查找的内容。不工作!:(这里是链接:供您查看流程。按数量输入值,并通过单击复选框尝试在第一行中插入值,它将自动计算“总时间”、“百分比”、“时间估计”列。对于第二行插入值,请注意,第一行的百分比会发生变化,但不是该beac的确切结果当您将所有百分比相加时使用。它应该是100%。@user0206我花了很长时间才了解您的实际需求。希望我理解了您的要求。我发现您从3天以来一直在寻找解决方案:)。我希望这对您有所帮助。:)请将其标记为答案。
$(document).ready(function () {
    $('td input[type="checkbox"]').click(function () {
        $(this).closest('tr').find('input[type="text"]').prop('disabled', !this.checked);
    }).change();
    $('input[name^="txt1"], input[name^="txt2"], #qty').on("keyup", function () {
        calculate();
    });
});

function calculate() {
    var grandTotal = 0;
    $('table.order-list tr input[name^="txt1"]:enabled').closest('tr').each(function () {
        var row = $(this);
        var qty = +$('#qty').val();
        var teo = +row.find('input[name^="txt1"]').val();
        var tep = +row.find('input[name^="txt2"]').val();
        var totalTime = (teo + (qty * tep)).toFixed(2);
        grandTotal += +totalTime;
        row.find('input[name^="total"]').val(totalTime);
    });

    var totalAll = $("#grandtotal").val(grandTotal.toFixed(2));
    $('#time').val((grandTotal / 60).toFixed(2));

    $('table.order-list tr input[name^="txt1"]:enabled').closest('tr').each(function () {
        var row = $(this);
        var totalTime = row.find('input[name^="total"]').val();
        row.find('input[name^="percentage"]').val((totalTime / grandTotal * 100).toFixed(1));
    });
}