0

以下の4つのリンクのそれぞれについて、forループを使用してonclick関数を生成しようとしています。今はまったく機能していません。理由はわかりません。

フィドル: http: //jsfiddle.net/7WYfF/

<p><a href="#" id="link0">Link0</a></p>
<p><a href="#" id="link1">Link1</a></p>
<p><a href="#" id="link2">Link2</a></p>
<p><a href="#" id="link3">Link3</a></p>

<script>
for (var i = 0; i < 3; i++) {
    var temp = "link" + i;

    [temp].onclick = function () { 
        alert("You just clicked link: " + i);
    };
}
</script>
4

3 に答える 3

3

2つのこと。iまず、必要な値を格納するためにクロージャーでラップする必要があります。2 つ目[temp]は DOM 要素を選択しないため、別の方法で行う必要があります。

for (var i = 0; i < 3; i++) {
    var temp = "link" + i;

    document.getElementById(temp).onclick = (function(t) {
        return function (e) { 
            alert("You just clicked link: " + t);
        };
    })(i);
}
于 2013-03-17T22:13:56.487 に答える
0

これを試して...

var temp = document.getElementById( "link" + i);

temp.onclick =function..。

于 2013-03-17T22:17:19.227 に答える
0

getElementByIdを使用する必要があります:

document.getElementById("link" + i);

また、jQueryフレームワークを使用することをお勧めします。裸のJavaScriptよりも簡単です。

于 2013-03-17T22:18:16.783 に答える