JavaScript向相同类名的元素添加事件

JavaScript向相同类名的元素添加事件,javascript,html,css,Javascript,Html,Css,我在收到JSON后生成了一些元素。那些类名为“tipo慷慨”的元素有一些CSS。我希望在单击这些元素时,显示的值。但是,它可以工作并生成事件,但是无论我单击哪个元素,我都只能得到最后一个元素的值 for (var i = 0; i < parsedText.length; i++) { dato += "<div class='tipoGenero'>"; dato += "<img src=/logos/" + parsedText[i].imagen

我在收到JSON后生成了一些元素。那些类名为“tipo慷慨”的元素有一些CSS。我希望在单击这些元素时,显示
的值。但是,它可以工作并生成事件,但是无论我单击哪个元素,我都只能得到最后一个元素的值

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);
}
for(变量i=0;i
您必须在侦听器中保存“valor”的当前值:可以这样做:

classname[i].addEventListener('click',函数(val){
返回函数(){
myFunction(val);
};

})(英勇,虚假)
这是因为传递给myFunction的
valor
变量引用传递了在myFunction执行时在valor变量中引用的值。该变量当时保存最后一个元素的文本值。