繁体   English   中英

为什么Click事件没有调用我的函数

[英]why Click event is not calling my function

我不知道为什么click事件没有调用btn()函数。

 function btn() { var radio = document.getElementsByTagName("input"); for (var i = 0; i > radio.length; i++){ if (radio[i].checked){ alert(radio[i].value); } else{ alert("lol"); } } } 
 <input name="r" value="1" type="radio"> <input name="r" value="2" type="radio"> <input name="r" value="3" type="radio"> <button onclick="btn()">hm</button> 

我不知道为什么点击事件没有调用btn()函数。

就是因为它存在逻辑错误,所以它永远不会进入循环

for (var i = 0; i > radio.length; i++){

i 从不radio.length 那应该是一个小于符号

for (var i = 0; i < radio.length; i++){

检查这一行:

for (var i = 0; i < radio.length; i++){

 function btn() { var radio = document.getElementsByTagName("input"); for (var i = 0; i < radio.length; i++){ if (radio[i].checked){ alert(radio[i].value); } else{ alert("lol"); } } } 
 <input name="r" value="1" type="radio"> <input name="r" value="2" type="radio"> <input name="r" value="3" type="radio"> <button onclick="btn()">hm</button> 

您的处理程序确实在运行,它的for循环是错误的。 当您拥有i > radio.length ,它永远不会迭代,它应该是i < radio.length

我还要添加使用html onclick绑定事件,这不是一个好主意。 最好使用addEventListener

document.getElementById('goBtn').addEventListener('click', btn);

这使您可以更好地控制已绑定的事件,可以轻松删除它们并为同一事件添加多个事件。

https://developer.mozilla.org/zh-CN/docs/Web/API/EventTarget/addEventListener#Why_use_addEventListener

请参阅小提琴: http : //jsfiddle.net/j375r0gs/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM