如何连接输入值并将它们转换为总数?

时间:2012-04-23 09:52:07

标签: javascript jquery

我有4个值为1 - 4的按钮,我想在每次点击一个数字时连接按钮值并在#result中显示,但我对如何做到这一点感到困惑。目前我创建了一个数组然后将每个值推入数组,因为它被点击然后转换为一个字符串,我将转换为数字,但我猜这是完全错误的方法,任何人都可以建议我如何实现这个目标?

的JavaScript

$(document).ready(function () {

  var arr = [], value;

  $('.num').on('click', function(e) {
    value = $(this).val();
    arr.push(value);
    var test = parseInt(arr.toString());
    console.log(test);
    $('#result').text(test);


  });

});

HTML

 <form id="myForm">
    <input type="text" id="result" />
    <input type="button" class="num" value="1" />
    <input type="button" class="num" value="2" />
    <input type="button" class="num" value="3" />
    <input type="button" class="num" value="4" />
  </form>

JSBIN - http://jsbin.com/exuwuz/2/edit

所以基本上命中1和#result会显示1命中2而#result会显示12等等?

4 个答案:

答案 0 :(得分:2)

您的代码可以简化。尝试:

$('input.num').click(
   function() {
    $('#result')[0].value += this.value;
   }
);​

请参阅this jsfiddle

答案 1 :(得分:1)

在连接中使用""以防止添加数字:

$(this).val("" + $(this).val() + value);

答案 2 :(得分:1)

array.toString()返回以逗号分隔的数组值列表(例如1,2,3,4)。然后parseInt将只解析第一个值(字符串的第一部分是正确的整数)。

要实现您想要使用的行为array.join()而不是array.toString(),这只会连接数组的内容:

var test = parseInt(arr.join(''));

答案 3 :(得分:0)

如何连接并直接显示它?

$(document).ready(function () {
  $('.num').on('click', function(e) {
    $('#result').val("" + $('#result').val() + $(this).val());
  });
});