我需要在页面上显示许多隐藏的块,这些块由函数显示:
function show() {
document.getElementById('info').style.display = 'block';
}
function hide() {
document.getElementById('info').style.display = 'none';
}
function show_x() {
document.getElementById('info_x').style.display = 'block';
}
function hide_x() {
document.getElementById('info_x').style.display = 'none';
}
如何在一个循环中隐藏所有这些功能? 为什么我的循环不起作用?
function show() {
document.getElementById('info').style.display = 'block';
}
function hide() {
document.getElementById('info').style.display = 'none';
}
for (var i = 1; i++; i <= 50) {
function show + i + () {
document.getElementById('info' + i + '').style.display = 'block';
}
function hide + i + () {
document.getElementById('info' + i + '').style.display = 'none';
}
}
谢谢!
答案 0 :(得分:2)
你不能这样写:
function show+i+()
您应将i
作为参数传递到您的函数show
或hide
:
function show(idAppend) {
document.getElementById('info' + idAppend).style.display='block';
}
for (var i=1; i++; i<=50){
show(i);
}
这将显示ID为infoX
的所有广告,其中X
是1到50之间的数字。
如果你想通过变量名称调用函数,你应该使用这种语法(取决于上下文):
window[functionName](arguments)
例如,让我们使用名为show5
并使用单个参数message
调用函数:
function show5(message){
alert(message);
}
// store name of the function in variable
var functionName = 'show5';
// call function with parameter "Hello!" by its name
window[functionName]('Hello!')