Estoy tratando de pasar un parámetro en el evento onclick. A continuación se muestra un ejemplo de código:Pasar parámetros en Javascript onClick evento
<div id="div"></div>
<script language="javascript" type="text/javascript">
var div = document.getElementById('div');
for (var i = 0; i < 10; i++) {
var link = document.createElement('a');
link.setAttribute('href', '#');
link.innerHTML = i + '';
link.onclick= function() { onClickLink(i+'');};
div.appendChild(link);
div.appendChild(document.createElement('BR'));
}
function onClickLink(text) {
alert('Link ' + text + ' clicked');
return false;
}
</script>
Sin embargo cada vez que haga clic en cualquier enlace de la alerta siempre muestra 'Enlace 10 hace clic en'!
¿Alguien puede decirme qué estoy haciendo mal?
Gracias
Gracias, está funcionando ahora! – fatcatz
¡Descripción impresionante de este Jamie! –
¡Ja! Porque ese * closure * que definimos en el RHS de 'link.onclick =' tiene acceso a la función que lo contiene, lo que significa que 'i' adentro hay una referencia al' i' externo, y no un valor copiado (como con normal * pasar por valor * pasar de argumentos)! :)) Encantador. Finalmente entiendo esto: D – Bloke