1

forループ内の関数名をこのように変更したいです。

<script>
for (var x=1;x<10;x++){
function name_x(){
   code
}
</script>

そのため、name_1、name_2 などの名前で 10 個の関数が生成されます。

ありがとう

編集:

これは、id_1、id_2、id_3、id_4、id_5 の 5 つの関数を作成するために for ループが必要なものです。

<html>
<head>
<script>
function id_1(a){
var id = document.getElementById(a);
if (id.innerHTML==="innerHTML2"){
    id.innerHTML="innerHTML1";
}
else if (id.innerHTML==="innerHTML1"){
    id.innerHTML="innerHTML2";
}
}
</script>
</head>
<body>
<a id="id1" href="javascript:id_1('id')">innerHTML1</a>
<a id="id2" href="javascript:id_2('id')">innerHTML1</a>
<a id="id3" href="javascript:id_3('id')">innerHTML1</a>
<a id="id4" href="javascript:id_4('id')">innerHTML1</a>
<a id="id5" href="javascript:id_5('id')">innerHTML1</a>
</body>
</html>
4

3 に答える 3

3

これはかなり悪質に見えますが、ブラウザを使用している場合windowは、グローバル オブジェクトとして使用できます。それ以外の場合は、メソッドを格納するオブジェクトを定義します。

var obj = {}, x;
for (x = 1; x < 10; x++) {
    obj['name_' + x]() { /* code */ }
}

obj.name_1()その後、またはを介し​​て呼び出すことができますobj['name_1']()

于 2013-03-07T21:51:47.360 に答える
3

代わりに関数の配列を作成できます。

var fs = [];
for (var x = 1; x < 10; x++){
    fs.push( function() {
       /* code */
    });
}
fs[1](); // call second function

代わりにオブジェクトを使用できますが、お勧めしません。

于 2013-03-07T21:53:29.703 に答える