2

値が1〜4のボタンが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 に答える