函数名中的连接变量--javascript

时间:2017-06-19 11:29:55

标签: javascript

即时尝试构建一个for循环,所以我不会通过重复相同的函数代码来浪费代码行,但我没有做对,我需要帮助如何连接我的循环变量(i)所以我可以更改名称功能。这是我的功能代码:

<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>

2 个答案:

答案 0 :(得分:5)

我认为你想构建89个名为mostra i 的函数。你可以这样做:

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>

答案 1 :(得分:1)

这是在函数中使用参数的基本示例:

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

尝试考虑一下这对您的问题有何帮助!