I am generating some elements after receiving a JSON. Those elements with classname "tipoGenero" have some CSS. I want that when any of those elements are clicked, display the value of the <span>. However, it works and generates the events, but whatever element I click I only get the value of the last one. 
for (var i = 0; i < parsedText.length; i++) {
    dato += "<div class='tipoGenero'>";
    dato += "<img src=/logos/" + parsedText[i].imagen + ">";
    dato += "<span>" + parsedText[i].nombre + "</span>";
    dato += "</div>";
} 
document.getElementById('generos').innerHTML = dato;
//generates events for class items 
var classname = document.getElementsByClassName("tipoGenero");
for (var i = 0; i < classname.length; i++) {
    valor = classname[i].children[1].textContent;
    alert(valor);
    classname[i].addEventListener('click', function() { myFunction(valor); }, false);
}
function myFunction(text) {
    alert(text);
}
 
     
    