0

数字に対応する変数のリストがあります。これらの変数を使用して、楽しみのために作成しているWebアプリの「画面」に数値を書き込みます。

var zero = 0;
var one = 1;
var two = 2;
var three = 3;
var four = 4;
var five = 5;
var six = 6;
var seven = 7;
var eight = 8;
var nine = 9;
var dec = ".";
var neg = "-";

画像の例

onclick以前は、ボタンごとに機能の長いリストがありました。

$('#a0').click(function(){
    writeInput(input, zero);
});

$('#a1').click(function(){
    writeInput(input, one);
});
$('#a2').click(function(){
    writeInput(input, two);
});
...

これらのクリック機能をすべて次のようなものに変換したいと思います。

$('.btnA').click(function(){
    var id = this.id;
    writeInput(input, id);
});

この関数を呼び出すもの:

function writeInput(field, str){
var text = $(field).val(function(i, v){
              return v + str;
           }).text(function(i, t){
              return t + str
           }).val();
convert(text, version);

}

上記の数字入力のすべてのボタンには、次のHTMLがあります。

...
<a id="seven" class="btnA"><div class="inputBtn mar" id="input7">7</div></a>
<a id="eight" class="btnA"><div class="inputBtn mar" id="input8">8</div></a>
<a id="nine" class="btnA"><div class="inputBtn" id="input9">9</div></a>
...

私の質問は次のとおりです。からID名を取得し、<a id="nine" class="btnA">それに対応させることはできますかvar nine = 9;

これが理にかなっていることを願っています。そうでない場合は、質問に答えます。ありがとう!

4

3 に答える 3

4

ID をキーとしてオブジェクトを使用すると、数値が返されます。

var numbers = {one: 1, two: 2, three: 3, .....};

$('.btnA').click(function(){
    var id = numbers[this.id];
    writeInput(input, id);
});
于 2013-02-06T19:01:35.897 に答える
2

data-type 属性を使用して、次のようなものを書くことができます。

<a data-number="7" class="btnA"><div class="inputBtn mar" id="input7">7</div></a>

$('.btnA').click(function(){
    var number = $(this).data('number');
    writeInput(input, number);
});
于 2013-02-06T19:03:29.910 に答える
1

これはそれを行う必要があります:

$('.btnA').click(function() {
    var t = $(this).text(),
        n = parseInt(t, 10);
    writeInput(input, isNaN(n) ? t : n);
});

ただし、id 属性 ( substr「a」のみ) から数値を抽出したり、ボタンのテキストを読み取る代わりにデータ属性を使用したりすることもできます。

于 2013-02-06T19:06:01.140 に答える