【问题标题】:Store values from input box in array to calculate sum将输入框中的值存储在数组中以计算总和
【发布时间】:2016-01-06 03:26:40
【问题描述】:

我有一系列输入框,用户可以在其中输入要存储在数组中的数值。我希望添加这些值并通过警报显示它们的总和。但是,我无法确定如何通过单击按钮将这些值传递给数组,就像我希望的那样。这是我的代码:

$('#check').click(function() {
    var arr = [];
  getSum = function() {
    for ( i = 0; i < 100; i++){
    arr[i] =
    $('input:number').map(function(){
        return this.value;
    });
    }
    var sum = 0;
    var n = arr.length;
for(var i = 0; i < n ; i++) {
sum += parseInt(arr[i]);

}
alert(sum);
}
 getSum();
});

带有 HTML 标记:

<input type="number" id="field1" />
<input type="number" id="field2" />
<input type="number" id="field3" />
<button type="button" id="check">Calc</button>

另外,我已经弄清楚如何动态添加输入,以便用户可以在总和中包含更多值,但我不确定这会如何影响代码。这还不够吗?

【问题讨论】:

  • 不正确的选择器 :number 不存在 AFAIK 并且 map() 返回一个数组。你把事情复杂化了

标签: javascript jquery arrays parsing input


【解决方案1】:

我已经缩短了您的代码。 input[type=number] 是您尝试执行的操作的合适选择器,它将找到所有新的动态创建的类型编号的输入。

$('#check').click(function() {
    var sum = 0;
    $('input[type=number]').each(function(i, input) {
        sum += Number(input.value);
    });
    alert(sum);
});

【讨论】:

  • 我设置了这个小提琴jsfiddle.net/P7QXa/27,但它似乎不起作用。
  • @newbie2015 那把小提琴对我有用。什么似乎不起作用?
  • 它没有提醒我总和。如果这有所作为,我使用的是 Mozilla Firefox。我刚刚在 Safari 上试了一下,没有出汗。
  • +1 表示可行的解决方案。不过,我加入了下面的@HarishKommuri 解决方案。不过,非常感谢!
【解决方案2】:
 var arr = [], sum = 0;

 $("#check").click(function() {
   $("input[type=number]").each(function() {
      arr.push($(this).val());
      sum += $(this).val();
   });
});

【讨论】:

  • 我将此添加到 sum += 行:parseInt($(this).val()); 以便它添加值而不仅仅是将它们输出到数组。感谢您提供的解决方案,否则,效果很好。
猜你喜欢
  • 1970-01-01
  • 2022-11-24
  • 1970-01-01
  • 2021-08-23
  • 1970-01-01
  • 1970-01-01
  • 2012-10-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多