¿Cómo generar controladores de eventos con bucle en Javascript? [duplicar

Esta pregunta ya tiene una respuesta aquí:

Javascript problema infame Loop? [duplicar 5 respuestas

Por ejemplo, tengo 10 etiquetas generadas a partir de una respuesta AJAX:

<a href="#" id="b1">b1</a>
<a href="#" id="b2">b2</a>
<a href="#" id="b3">b3</a>
<a href="#" id="b4">b4</a>
<a href="#" id="b5">b5</a>
<a href="#" id="b6">b6</a>
<a href="#" id="b7">b7</a>
<a href="#" id="b8">b8</a>
<a href="#" id="b9">b9</a>
<a href="#" id="b10">b10</a>

Necesito asignar un evento onclick a cada uno de ellos a través del bucle:

for(i=1; i<11; i++) {
    document.getElementById("b"+i).onclick=function() {
        alert(i);
    }
}

Esto no funciona, solo asigna al último clic en una etiqueta y alerta "11". ¿Cómo puedo hacer que esto funcione? Prefiero no usar jQuery.

Respuestas a la pregunta(3)

Su respuesta a la pregunta