Hola.
Mi duda es la siguiente:
Quise obtener el índice de elemento al que le hago click según se recoja en el array al hacer el getElementsByName.

... Pensé que al hacer el for y obtener la variable i podría sacar si había hecho clic en el elemento 0,1,2 ... etc, pero siempre obtengo la longitud máxima del array.
Es obvio que hago algo mal, pero pensaba que algo tan tonto como esto no requeriría más. Estoy espeso
Simplifico el código y dejo lo esencial por si no me expliqué correctamente.
Código HTML:
<input type="radio" name="rd" /> <br />
<input type="radio" name="rd" /> <br />
<input type="radio" name="rd" /> <br />
<input type="radio" name="rd" /> <br />
<script type="text/javascript">
function addListener(element, type, expression){
if(element.addEventListener)
element.addEventListener(type, expression, false);
else if(element.attachEvent)
element.attachEvent('on'+type, expression);
else return false;
}
var obj = document.getElementsByName('rd');
function addEvent(){
/*for(var i in obj)*/
for(i=0; i<obj.length; i++)
addListener(obj[i], 'click', function(){alert(i);}); // no muestra 0,1,2,3 sino siempre 4
}
window.onload = addEvent;
</script>
Espero que alguien pueda decirme que es lo que no estoy teniendo en cuenta.
Un saludo.