2017-04-08 185 views
0

嘿家伙有人能解释为什么事件不执行? 调试器根本不会给出任何错误! 预先感谢您为什么事件没有执行?

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="utf-8"> 
    <title></title> 
    </head> 

    <button class="boton">prueba</button> 
    <body> 

<script type="text/javascript"> 

var elemento= document.getElementsByClassName("boton") 
elemento.onclick=function(){ 
    alert("hola"); 
}; 
debugger; 

</script> 

    </body> 
</html> 
+2

使用'var elemento = document.getElementsB yClassName(“boton”)[0]' –

+1

[JavaScript上类的JavaScript点击事件监听器]的可能重复(http://stackoverflow.com/questions/19655189/javascript-click-event-listener-on-class) –

+0

工作,非常感谢你! – ge00rge

回答

1

document.getElementsByClassName()返回一个数组的DOM方法。必须通过数组项循环分配onclick处理程序之前:

var elemento = document.getElementsByClassName("boton") 
 
for (var i = 0; i < elemento.length; i++) { 
 
    elemento[i].onclick = function() { 
 
    alert("hola"); 
 
    }; 
 
} 
 
debugger;
<button class="boton">prueba</button>

另外,如果你只选择一个元素,你可以使用document.querySelector()

var elemento = document.querySelector(".boton"); 
 
elemento.onclick = function() { 
 
    alert("hola"); 
 
}; 
 
debugger;
<button class="boton">prueba</button>

相关问题