我正在研究一个Javascript代码,它会重复一些行很多次。我已经尝试将这些行放在一个函数中,如下所示
function rpit() {
a += 1; b += 1;
}
document.getElementById('button1').onclick = function() {
var a = +document.getElementById('inpA').value,
b = +document.getElementById('inpB').value;
rpit();
if (a == 5) rpit();
if (b == 10) rpit();
rpit();
}
但似乎这种方式不起作用。我该如何处理这些代码?谢谢你的帮助。
答案 0 :(得分:2)
对象可能更容易: -
function toEnglishNum( num, dontTrim ) {
var i = 0,
j = 0,
dontTrim = dontTrim || false,
num = dontTrim ? num.toString() : num.toString().trim(),
len = num.length,
res = '',
pos,
persianNumbers = typeof persianNumber == 'undefined' ?
[ '۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹' ] :
persianNumbers;
for ( ; i < len; i++ )
if ( ~( pos = persianNumbers.indexOf( num.charAt( i ) ) ) )
res += pos;
else
res += num.charAt( i );
return res;
};
不确定你的'b'是全局变量还是忘了放var,如果它需要全局
function rpit(o) {
o.a += 1; o.b += 1;
}
document.getElementById('button').onclick = function() {
var o = {};
o.a = document.getElementById('inpA').value,
o.b = document.getElementById('inpB').value;
rpit(o);
if (o.a == 5) rpit(o);
if (o.b == 10) rpit(o);
rpit(o)
}
最后......但是,如果你这样做,你可能会有点混乱。
答案 1 :(得分:1)
您应该更改代码以使其按照您希望的方式工作。
document.getElementsByTagName()
代替document.getElementById()
。然后迭代结果并像你一样添加一个onclick
监听器。 rpit()
没有a
和b
的知识,因为它们既不是本地的也不是全局的,所以在顶部定义它们值为0. .value
会将其作为字符串获取,因此如果a=5
,则a+=1
会将其a=51
设为parseInt()
。这可以通过使用console.log()
和值以及第二个参数10(意味着十进制系统)来修复。根据这些说明,我将您的代码重构为以下内容(var a=0, b=0;
function rpit() {
a += 1; b += 1;
}
var buttons = document.getElementsByTagName('button');
for(var i = 0; i < buttons.length; i++)
buttons[i].onclick = function(){
a = parseInt(document.getElementById('inpA').value, 10);
b = parseInt(document.getElementById('inpB').value,10);
rpit();
if (a == 5) rpit();
if (b == 10) rpit();
rpit();
console.log("a: "+a+", b: "+b);
}
将向您显示结果。
<button >button</button>
<input id="inpA" value="5"/>
<input id="inpB" value="8"/>
&#13;
id identifier pokemon_id stat_id base_stat local_language_id name
36 7 Squirtle 7 1 44 9 HP
37 7 Squirtle 7 2 48 9 Attack
38 7 Squirtle 7 3 65 9 Defense
39 7 Squirtle 7 4 50 9 Special Attack
40 7 Squirtle 7 5 64 9 Special Defense
41 7 Squirtle 7 6 43 9 Speed
id identifier pokemon_id stat_id base_stat local_language_id name
18 4 Charmander 4 1 39 9 HP
19 4 Charmander 4 2 52 9 Attack
20 4 Charmander 4 3 43 9 Defense
21 4 Charmander 4 4 60 9 Special Attack
22 4 Charmander 4 5 50 9 Special Defense
23 4 Charmander 4 6 65 9 Speed
&#13;