Ich bin relativ neu in JS, so dass dies ein häufiges Problem sein kann, aber ich bemerkte etwas seltsam im Umgang mit For-Schleifen und Onclick-Funktion. Ich war in der Lage, das Problem mit diesem Code zu replizieren:JavaScript for Schleife Index Fremdheit
<html>
<head>
<script type="text/javascript">
window.onload = function() {
var buttons = document.getElementsByTagName('a');
for (var i=0; i<2; i++) {
buttons[i].onclick = function() {
alert(i);
return false;
}
}
}
</script>
</head>
<body>
<a href="">hi</a>
<br />
<a href="">bye</a>
</body>
</html>
Wenn die Links zu klicken, ich erwarten würde bekommen ‚0‘ und ‚1‘, sondern ich ‚2‘ für beide von ihnen. Warum ist das?
BTW, ich habe es geschafft, mein spezielles Problem zu lösen, indem ich das "this" -Schlüsselwort verwende, aber ich bin immer noch neugierig, was hinter diesem Verhalten steckt.
Bitte zeigen Sie ein Beispiel, wie Sie das Problem mit "this" gelöst haben. –