JavaScript 将事件添加到相同类名的元素
JavaScript adding events to elements of same classname
我在收到 JSON 后生成一些元素。那些类名为"tipoGenero"的元素有一些CSS。我希望当单击这些元素中的任何一个时,显示<span>
的值。但是,它可以工作并生成事件,但是无论我单击什么元素,我都只能获得最后一个元素的值。
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);
}
您必须在侦听器中保存"valor"的当前值: 可以这样做:
classname[i].addEventListener('click', function(val){
return function(){
myFunction(val);
};
})(valor), false);
相关文章:
- 具有相同类的jquery-click元素
- 使用jQuery创建具有不同类名或ID的多个元素
- 对具有相同类级别的不同li元素进行排序
- 计算具有相同类的元素的数量-jquery
- 显示/隐藏具有不同类的li元素
- 谷歌自动完成无法处理具有相同类名的多个元素
- 是什么阻止querySelectorAll处理此代码中具有相同类的所有元素
- Internet Explorer CSS类样式没有'如果存在具有相同类名的其他元素,则不适用
- 对于具有相同类的多个元素,只影响jquery中单击的元素
- 使用 .each 循环遍历 Backbone View 中具有相同类的元素
- 隐藏具有相同类名的所有元素
- 如何包装彼此相邻且具有相同类的所有元素
- 如何在具有相同类的多元素中找到属性
- push 方法将元素添加到数组中不起作用,同时获取具有相同类的元素的 ID 和值
- Jquery .on('click') 奇怪的行为 - 选择所有具有相同类名的元素
- 仅当具有相同类的元素的中间使用 jQuery 航点到达视口时,才淡入具有相同类的元素
- JavaScript 将事件添加到相同类名的元素
- 在 jquery 中更改具有相同类的多个 html 元素中的文本
- Javascript - 将唯一的元素 id 添加到具有相同类名的多个元素
- 获取jquery/css/javascript中相同类元素的最小宽度