2017-06-19 84 views
-1

即时尝试构建for循环,所以我不浪费代码行通过重复相同的代码的功能,但即时通讯不做正确的,我需要帮助如何连接我的循环变量(我)所以我可以改变函数的名字。这里是我的功能代码:函数名称中的连接变量 - javascript

<script> 
 
for (i = 1; i < 90; i++) { 
 
var nome = window["mostra" + i]; 
 
function nome() { 
 
    document.getElementById("form"+i).style.display="block"; 
 
    document.getElementById("texto"+i).style.display="none"; 
 
} 
 
</script>

+3

你能解释一下你想达到什么目的吗? – Rajesh

+3

window [“mostra”+ i] = function(){...} << - 非常非常糟糕的风格 –

+1

解释你的代码或要求 – Harshal

回答

5

我想你想建立一个名为MOSTRA 89种功能。你可以这样实现它:

for (let i = 1; i < 90; i++) { // <- the let is very important 
 
    window["mostra" + i]=function() { // <- assign the function to mostra*i* 
 
    document.getElementById("form"+i).style.display="block"; 
 
    document.getElementById("texto"+i).style.display="none"; 
 
    }; 
 
    }
<button onclick="mostra1()">Test it!</button> 
 
<div id="form1" style="display:none">Will show</div> 
 
<div id="texto1">Will hide</div>

然而,它非常非常不好的风格。你可能只是把它传递:

function mostra(i){//one function instead of 89 
document.getElementById("form"+i).style.display="block"; 
document.getElementById("texto"+i).style.display="none"; 
} 

所以,你可以这样做:

mostra(1);//instead of mostra1() 

或者在HTML:

<button onclick="mostra(1)" >show first</button> 
+0

谢谢,这工作! –

1

下面是一个函数使用参数的一个基本的例子:

function add2(i) { // <--- name it here 
    return i + 2; // <--- use it here 
} 
add2(3); // <--- call it here 
// ==> 5 

试着想想这可以如何帮助您的专业blem!