如何处理Javascript中多次调用的代码?

如何处理Javascript中多次调用的代码?,javascript,Javascript,我正在编写一个Javascript代码,它会多次重复某些行。我试着把这些行放在一个函数中,如下所示 function rpit() { a += 1; b += 1; } document.getElementById('button1').onclick = function() { var a = +document.getElementById('inpA').value, b = +document.getElementById('inpB').value;

我正在编写一个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();
}

但这种方式似乎行不通。我如何处理这些代码?感谢您的帮助。

对象可能更简单:-

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)
}
不确定您的“b”是否是全局变量,或者只是忘记输入var,如果您需要它的全局变量

b = o.b 

最后……如果你这样做,很可能会造成一点混乱。

你应该在代码中做很多修改,以使它按照你想要的方式工作

  • 首先,假设您正在检查是否有任何按钮单击,您应该使用
    document.getElementsByTagName()
    而不是
    document.getElementById()
    。然后迭代结果并添加一个
    onclick
    监听器,就像您所做的那样
  • 其次,一个主要问题是
    rpit()
    不了解
    a
    b
    ,因为它们既不是局部的,也不是全局的,所以在顶部用0值定义它们
  • 第三个大问题是,输入字段上的
    .value
    将它们作为字符串获取,因此如果
    a=5
    ,运行
    a+=1
    将使其成为
    a=51
    。这可以通过使用
    parseInt()
    值和第二个参数10(表示十进制)来解决
基于这些注释,我将您的代码重构为以下内容(
console.log()
将向您显示结果)

var a=0,b=0;
函数rpit(){
a+=1;b+=1;
}
var buttons=document.getElementsByTagName('button');
对于(变量i=0;i
按钮

你想在这里做什么?你是在计算什么时候某个东西可以被5整除?至少你会得到一个“a未定义”您提供的示例中出现错误。根据主题,您所能做的就是重新考虑您的算法,不要多次使用此函数。只需注意,OPs
b
不是全局的,因为它们使用逗号运算符用单个
var
声明
a
b