我怎样才能循环一个函数?
How can I loop a function?
我有一个函数 'y()',我想在延迟循环中调用该函数。
现在我使用 "setInterval" 以便它每 2 秒运行一次函数。通过按钮使用函数 'z1()' 激活 setInterval。但是这个方法好像不行
代码如下:
Javascript:
var x = 0-1;
var i;
//document.getElementById("function1").innerHTML = "y()";
function z1() {
setInterval(
function y() {
function number_string() {
x += 1;
document.getElementById("display").innerHTML = x;
var number = 1234567890123456789;
var one = String(number).charAt(x);
var one_as_number = Number(one);
//document.write(one_as_number);
document.getElementById("display2").innerHTML = one_as_number;
}
},2000
);
}
HTML:
<button onclick="z1()">x</button>
你看到这里,调用 y
返回一个函数 number_string
。你可以删除它
function y() {
x += 1;
document.getElementById("display").innerHTML = x;
var number = 1234567890123456789;
var one = String(number).charAt(x);
var one_as_number = Number(one);
//document.write(one_as_number);
document.getElementById("display2").innerHTML = one_as_number;
}, 2000
或者直接调用...
function y() {
function number_string() {
x += 1;
document.getElementById("display").innerHTML = x;
var number = 1234567890123456789;
var one = String(number).charAt(x);
var one_as_number = Number(one);
//document.write(one_as_number);
document.getElementById("display2").innerHTML = one_as_number;
} () // <-- see
}, 2000
只需删除您的内部 fn function number_string() {
因为您不会在任何地方调用 int。
同时缓存您计划多次重复使用的元素。
var x = -1;
var disp1 = document.getElementById("display");
var disp2 = document.getElementById("display2");
function z1() {
setInterval(function y() {
disp1.innerHTML = ++x;
var number = 1234567890123456789;
disp2.innerHTML = String(number).charAt(x);
},2000);
}
我不太清楚你为什么要使用 var number = 1234567890123456789;
...但可能你就是喜欢它!
同样使用 Number()
和 innerHTML
没有任何意义,因为即使它是一个字符串,有什么区别。
如果您希望能够从 setInterval
外部调用 y()
,您需要在外部定义它。否则,函数名的作用域就是z1
函数。
您的 y()
代码定义了一个名为 number_string()
的内部函数,但它从未调用过它。您应该直接将代码放入 y()
.
的正文中
var x = -1;
var i;
function y() {
x += 1;
document.getElementById("display").innerHTML = x;
var number = 1234567890123456789;
var one = String(number).charAt(x);
var one_as_number = Number(one);
//document.write(one_as_number);
document.getElementById("display2").innerHTML = one_as_number;
}
//document.getElementById("function1").innerHTML = "y()";
function z1() {
setInterval(y,2000);
}
我有一个函数 'y()',我想在延迟循环中调用该函数。
现在我使用 "setInterval" 以便它每 2 秒运行一次函数。通过按钮使用函数 'z1()' 激活 setInterval。但是这个方法好像不行
代码如下:
Javascript:
var x = 0-1;
var i;
//document.getElementById("function1").innerHTML = "y()";
function z1() {
setInterval(
function y() {
function number_string() {
x += 1;
document.getElementById("display").innerHTML = x;
var number = 1234567890123456789;
var one = String(number).charAt(x);
var one_as_number = Number(one);
//document.write(one_as_number);
document.getElementById("display2").innerHTML = one_as_number;
}
},2000
);
}
HTML:
<button onclick="z1()">x</button>
你看到这里,调用 y
返回一个函数 number_string
。你可以删除它
function y() {
x += 1;
document.getElementById("display").innerHTML = x;
var number = 1234567890123456789;
var one = String(number).charAt(x);
var one_as_number = Number(one);
//document.write(one_as_number);
document.getElementById("display2").innerHTML = one_as_number;
}, 2000
或者直接调用...
function y() {
function number_string() {
x += 1;
document.getElementById("display").innerHTML = x;
var number = 1234567890123456789;
var one = String(number).charAt(x);
var one_as_number = Number(one);
//document.write(one_as_number);
document.getElementById("display2").innerHTML = one_as_number;
} () // <-- see
}, 2000
只需删除您的内部 fn function number_string() {
因为您不会在任何地方调用 int。
同时缓存您计划多次重复使用的元素。
var x = -1;
var disp1 = document.getElementById("display");
var disp2 = document.getElementById("display2");
function z1() {
setInterval(function y() {
disp1.innerHTML = ++x;
var number = 1234567890123456789;
disp2.innerHTML = String(number).charAt(x);
},2000);
}
我不太清楚你为什么要使用 var number = 1234567890123456789;
...但可能你就是喜欢它!
同样使用 Number()
和 innerHTML
没有任何意义,因为即使它是一个字符串,有什么区别。
如果您希望能够从 setInterval
外部调用 y()
,您需要在外部定义它。否则,函数名的作用域就是z1
函数。
您的 y()
代码定义了一个名为 number_string()
的内部函数,但它从未调用过它。您应该直接将代码放入 y()
.
var x = -1;
var i;
function y() {
x += 1;
document.getElementById("display").innerHTML = x;
var number = 1234567890123456789;
var one = String(number).charAt(x);
var one_as_number = Number(one);
//document.write(one_as_number);
document.getElementById("display2").innerHTML = one_as_number;
}
//document.getElementById("function1").innerHTML = "y()";
function z1() {
setInterval(y,2000);
}