JavaScript:单击相同类名的事件
我有以下代码片段。问题是第二个标签的JavaScript:单击相同类名的事件,javascript,Javascript,我有以下代码片段。问题是第二个标签的onclick事件没有触发,该标签与第一个标签具有相同的类。为什么呢? 我在网上搜索并找到了多个解决方案,但都在jQuery中。但我希望它是纯JavaScript的。有人知道我做错了什么吗 var label=document.getElementsByClassName('text'); 标签[0]。onclick=function(){ console.log(true); }; 你好 世界var label=document.getElementsBy
onclick
事件没有触发,该标签与第一个标签具有相同的类。为什么呢?
我在网上搜索并找到了多个解决方案,但都在jQuery中。但我希望它是纯JavaScript的。有人知道我做错了什么吗
var label=document.getElementsByClassName('text');
标签[0]。onclick=function(){
console.log(true);
};代码>
你好
世界代码>var label=document.getElementsByClassName('text');
对于(var i=0;i您可以使用:
document.body.onclick=函数(ev){
if(ev.target.getAttribute(“类”)=“文本”){
console.log(true);
}
};
你好
World!
label
是所有元素的数组,类为text
,因此label[0]
将只应用于文档中的第一个元素。最简单的方法可能是使用循环,如
for (var i = 0; i<label.length; i++){
label[i].onclick = function() {
console.log(true);
};
for(var i=0;i试试这个
var label = document.getElementsByClassName('text');
for (var i = 0; i < label.length; i++) {
label[i].onclick = function() {
console.log(true);
};
}
var label=document.getElementsByClassName('text');
对于(变量i=0;i
getElementsByClassName
返回一个节点数组(集合),并且您只将函数应用于第一个[0]
element如果有更复杂的DOM结构,最好将此方法应用于第一个父容器。但使用委派+1是一个很好的方向
var label = document.getElementsByClassName('text');
for (var i = 0; i < label.length; i++) {
label[i].onclick = function() {
console.log(true);
};
}