【问题标题】:JS - Sum List of Array (Sum Names in Text Field)JS - 数组的总和列表(文本字段中的总和名称)
【发布时间】:2014-07-04 14:03:59
【问题描述】:

我正在尝试制作一个按钮,当单击该按钮时,它会在文本字段输入 (id="textName") 中打印一个来自名称数组的随机名称。目前没问题!

之后,所有名称需要在另一个 texfield (id="addName") 中相互求和,并更新每次单击添加新名称。就像有一个由昏迷法令分隔的名称列表,bmw,masaserati,ferrari)。

这是我目前的代码。

<input type="button" id="randomName" value="name" style="position:relative; top:200px; left:50px;" />


<input  type="text" id="textName" value="" style="position:relative; top:200px; left:100px; width:200px;" />

<input  type="text" id="addName" value="" style="position:relative; top:300px; left:0px; width:80%;" />



<script >



var Names = ["Saab", "Volvo", "BMW", "Fiat", "Ferrari", "Maserati", "Audi"];


document.getElementById('randomName').onclick = function() {
  //add code here
  var NumberRandom = Math.floor((Math.random() * 7) + 1);
  var allNames = Names[NumberRandom];

  $('#textName').val(allNames);

  console.log(NumberRandom);


  for(var i=0; i<NumberRandom; i++){

                var total = Names[NumberRandom] += 1 ;

                    console.log(total);

                    $('#addName').val(total);

                        return;
                    }

                }

</script>

这里是小提琴:

http://jsfiddle.net/salvonostrato/m2Upg/

任何想法如何在 addName 输入中对每次单击以逗号分隔的名称求和?

【问题讨论】:

  • “名称需要彼此相加”是什么意思?求和通常用数字完成。

标签: javascript arrays html button input


【解决方案1】:

这是您的fiddle 的固定版本

var Names = ["Saab", "Volvo", "BMW", "Fiat", "Ferrari", "Maserati", "Audi"];


document.getElementById('randomName').onclick = function() {
  //add code here
  var NumberRandom = Math.floor((Math.random() * Names.length));
  var allNames = Names[NumberRandom];

  $('#textName').val(allNames);

  console.log(NumberRandom);

    var curVal = $("#addName").val()
    if (curVal.length > 0) {
        curVal += ','
    }
    curVal += allNames
    $("#addName").val(curVal)

}

注意随机数生成的变化(第 6 行)和底部的 curVal 变化(第 13-18 行)。

【讨论】:

  • 请把答案放在这里(链接没问题)。如果链接失效,则没有未来参考。
  • 有没有办法计算名字?我正在尝试使用“curVal.length”,但它会将字母数加在一起
  • 有没有办法计算名字?我正在尝试使用“curVal.length”,但它会将字母数加在一起
  • 如果你想计算名字,你应该使用数组而不是字符串。
【解决方案2】:

请检查此fiddle

var Names = ["Saab", "Volvo", "BMW", "Fiat", "Ferrari", "Maserati", "Audi"];


document.getElementById('randomName').onclick = function () {
//add code here
var NumberRandom = Math.floor((Math.random() * 6) + 1);
var allNames = Names[NumberRandom];

$('#textName').val(allNames);

console.log(NumberRandom);


for (var i = 0; i < NumberRandom; i++) {

    var total = Names[NumberRandom] += 1;
    var prev = $('#addName').val();
    console.log(prev);
    if (prev != '') {
        prev += ',' + total;
    }else{
        prev = total;
    } 

    $('#addName').val(prev);

    return;
}

}

【讨论】:

  • 你不应该在 javascript (!=) 中做单不等于。另外,要检查非空字符串,请执行string.length &gt; 0
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-24
  • 2020-10-03
相关资源
最近更新 更多