2017-06-19 31 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!