JS的onclick在Chrome和Safari中均不能被触发

发布于 2022-09-13 01:09:51 字数 562 浏览 16 评论 0

写了一段很简单的源码,就是最基本的使用 <button> 触发事件:
HTML 源码如下:

<body>
    <button>Click this button to trigger an event</button>
</body>

<script src="Event.js"></script>

JS 源码如下:

var btn = document.getElementsByTagName("button")
btn.onclick = function () {
    alert("Successfully Triggered an Event !");
    console.log("Good");
}

在浏览器中解析后,调试时发现 btn 中选择到了 <button> 元素,而且也被赋值了。但是点击 <button> 按钮却没有反应,即没有出现 alert 对话框,控制台也没有显示 “Good”。请问各位大佬这是为什么啊 ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

木格 2022-09-20 01:09:51

因为getElementsByTagName获取的是元素集合,不是元素本身,所以你需要先从这个集合中取到元素,再进行绑定

var btns = document.getElementsByTagName("button")
// 或者使用遍历,需要注意它是一个为数组,不能直接当数组进行遍历 
btns[0].onclick = function () {
    alert("Successfully Triggered an Event !");
    console.log("Good");
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文