我有一个与数字对应的变量列表。我使用这些变量将数字写入我正在构建的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>
...
我的问题是:我是否可以从<a id="nine" class="btnA">
获取ID名称,并将其与var nine = 9;
我希望这是有道理的。如果没有,请问我会回答任何问题。谢谢!
答案 0 :(得分:4)
使用ID为关键字的对象,您将获得数字:
var numbers = {one: 1, two: 2, three: 3, .....};
$('.btnA').click(function(){
var id = numbers[this.id];
writeInput(input, id);
});
答案 1 :(得分:2)
您可以使用数据类型属性并编写以下内容:
<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);
});
答案 2 :(得分:1)
这应该这样做:
$('.btnA').click(function() {
var t = $(this).text(),
n = parseInt(t, 10);
writeInput(input, isNaN(n) ? t : n);
});
但是,您也可以从id属性中提取数字(只需substr
“a”),甚至可以更好地使用数据属性,而不是阅读按钮文本。