私はこのコードが動作しないことを知っていますし、私も理由を知っています。しかし 、私はそれを修正する方法がわからない:ループ変数に匿名関数を定義していますか?
JavaScriptを:
var $ = function(id) { return document.getElementById(id); };
document.addEventListener('DOMContentLoaded', function()
{
for(var i = 1; i <= 3; i++)
{
$('a' + i).addEventListener('click', function()
{
console.log(i);
});
}
});
HTML:
<a href="#" id="a1">1</a>
<a href="#" id="a2">2</a>
<a href="#" id="a3">3</a>
は、私は、それはあなたがクリックしたリンクの数を印刷したくないだけ」 4 "となる。 ノードの属性(IDまたはコンテンツ)を使用するのではなく、ループを修正することをお勧めします。
[Coffeescript](http://coffeescript.org/)は、この種の状況のために非常に便利な 'do'キーワードを持っています。 –