2

我有 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

4 回答 4

2

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

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

看到这个jsfiddle

于 2012-04-23T09:59:14.410 回答
1

串联使用""以防止数字相加:

$(this).val("" + $(this).val() + value);
于 2012-04-23T09:56:07.550 回答
1

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

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

var test = parseInt(arr.join(''));
于 2012-04-23T10:01:36.303 回答
0

如何连接并直接显示?

$(document).ready(function () {
  $('.num').on('click', function(e) {
    $('#result').val("" + $('#result').val() + $(this).val());
  });
});
于 2012-04-23T09:55:59.343 回答