2017-02-15 7 views
0

私は次の 'registerHandlers' javascript関数に問題があります。 onclickを添付しようとすると、常に「3」と表示されます。ここでどのように動作する必要がありますか。Javascript onclick attachmentインデクサの問題

アラートでは、リンクに従うのではなく、ドキュメント内にアンカーのゼロベースのインデックスが表示されるはずです。それは第三のアンカー要素が文書であり、そのゼロベースのインデックスはここでスクリプト2.

ですので、Googleのアンカーがクリックされたときに

は例えば、以下の文書では、アラートは「2」が表示されますテストページJSFiddle

function registerHandlers() { 
    var as = document.getElementsByTagName('a'); 
    for (var i = 0; i < as.length; i++) { 
    as[i].onclick = function() { 
     alert(i); 
     return false; 
    } 
    } 
} 
+0

を動作するはずです。 – Aslam

答えて

1

でこれは:)あなたがループインデックスをクリックしたときには既に更新されているため、それは常に3を表示すべき

function registerHandlers() { 
    var as = document.getElementsByTagName('a'); 
    var j = 1; 
    for (var i = 0; i < as.length; i++) { 
    as[i].onclick = function() { 
     alert(j); 
     j++; 
    } 
    } 
} 
+1

これはそうです。ありがとうhunzaboy!ゼロベースの場合でも、jは0で初期化する必要があります。 – user2751316

+0

あなたが望むベースは何でも使用できます:) – Aslam