Soy relativamente nuevo en JS, así que esto puede ser un problema común, pero noté algo extraño cuando se trata de bucles for y la función onclick. Yo era capaz de replicar el problema con este código:JavaScript for loop index raregeness
<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>
Al hacer clic en los enlaces que cabe esperar para conseguir '0' y '1', pero en vez recibo el mensaje '2' para los dos. ¿Por qué es esto?
Por cierto, logré resolver mi problema particular usando la palabra clave 'this', pero aún tengo curiosidad sobre qué hay detrás de este comportamiento.
Por favor, muestre un ejemplo de cómo resolvió el problema con "esto". –