繁体   English   中英

如何使用 JavaScript 或 jQuery 获得跨度中三个输入值的总和?

[英]How do I get the sum of three inputs values in a span using JavaScript or jQuery?

我对输入只有一个正值。

 var input = $('[name="1"],[name="2"],[name="3"]'), input1 = $('[name="1"]'), input2 = $('[name="2"]'), input3 = $('[name="3"]'), input4 = $('[name="4"]'); input.change(function() { var val1 = (isNaN(parseInt(input1.val())))? 0: parseInt(input1.val()); var val2 = (isNaN(parseInt(input2.val())))? 0: parseInt(input2.val()); var val3 = (isNaN(parseInt(input3.val())))? 0: parseInt(input3.val()); input4.val(val1 + val2 + val3); });
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <input type="number" id="number1" name="1" min="0" max="8" value="0" /> <input type="number" id="number3" name="3" min="0" max="8" value="0" /> <input type="number" id="number2" name="2" min="0" max="8" value="0" /> <input type="number" id="number3" name="3" min="0" max="8" value="0" /> <span class="total-select" name="4">0</span>
如何在运行时获得答案(无需单击即可获得答案)。

您可以使用each循环来遍历您的输入并从每个输入中获取所需的值,然后将它们添加,然后使用$(".total-select").text(val); 在你的跨度内相同

演示代码

 $("input[type=number]").change(function() { var val = 0; //loop through each inputs $("input[type=number]").each(function() { //sum values val += parseInt($(this).val()) }) //put in span $(".total-select").text(val); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input type="number" id="number1" name="1" min="0" max="8" value="0" /> <input type="number" id="number3" name="3" min="0" max="8" value="0" /> <input type="number" id="number2" name="2" min="0" max="8" value="0" /> <input type="number" id="number4" name="3" min="0" max="8" value="0" /> <span class="total-select" name="4">0</span>

试试这个,你的片段有很多错字。 使用parseInt(input1.val())|0检查并获取一个值,如果 value 为 NaN,则 value = 0

 var input = $('[name="1"],[name="2"],[name="3"]'), input1 = $('[name="1"]'), input2 = $('[name="2"]'), input3 = $('[name="3"]'), input4 = $('[name="4"]'); input.change(function() { var val1 = parseInt(input1.val())|0; var val2 = parseInt(input2.val())|0; var val3 = parseInt(input3.val())|0; input4.html(val1 + val2 + val3); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input type="number" id="number1" name="1" min="0" max="8" value="0" />+ <input type="number" id="number2" name="2" min="0" max="8" value="0" />+ <input type="number" id="number3" name="3" min="0" max="8" value="0" />= <span class="total-select" name="4">0</span>

考虑到您可以使用Array.prototype.reduce方法获得数组中包含的数字的总和:

 const arr = [1, 2, 3, 4, 5]; const total = arr.reduce((sum, n) => sum + n, 0); console.log(total);

您可以使用toArray jQuery 方法jQuery输入选择转换为数组,并应用相同的技术来获得结果:

 const inputs = $('input[type="number"]'); const span = $('span[name="4"]'); inputs.on("change", () => { span.text( inputs.toArray().reduce((sum, item) => sum += (+item.value || 0), 0) ); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input type="number" id="number1" name="1" min="0" max="8" value="0" /> <input type="number" id="number3" name="3" min="0" max="8" value="0" /> <input type="number" id="number2" name="2" min="0" max="8" value="0" /> <span name="4">0</span>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM