Como gerar manipuladores de eventos com loop em Javascript? [duplicado

Esta pergunta já tem uma resposta aqui:

Javascript questão infame Loop? [duplicado 5 respostas

Por exemplo, tenho 10 tags a geradas a partir de uma resposta 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>

Preciso atribuir um evento onclick a cada um deles através do loop:

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

Isso não funciona, apenas atribui ao último clique uma tag e alerta "11". Como posso fazer isso funcionar? Prefiro não usar o jQuery.

questionAnswers(3)

yourAnswerToTheQuestion