HTML中,给<button>添加onclick事件

<button onclick="">现在的时间是?</button>

常用的给这个button添加onclick事件的几种方式:

1、内联Javascript函数

可以直接在onclick属性中编写 JavaScript 代码。

这种方式简单直接,将函数定义在<script>标签中,然后在onclick属性中调用这个函数。

不过,这种方式会使 HTML 和 JavaScript 代码混合在一起,不利于代码的维护和分离。

例如:

点击查看代码

//方法一
<button onclick="showTime()">现在的时间是?</button>
<script>
    function showTime() {
        let date = new Date();
        let hours = date.getHours();
        let minutes = date.getMinutes();
        let seconds = date.getSeconds();
        alert('现在的时间是:'+ hours +':'+ minutes +':'+ seconds);
    }
</script>



//方法二
<button onclick="console.log(new Date().toLocaleTimeString())">现在的时间是?</button>


2、使用匿名函数

也可以在onclick属性中直接定义一个匿名函数。

这里在onclick属性中定义了一个匿名函数,当按钮被点击时,这个匿名函数就会执行。

但同样,这种方式也会使 HTML 代码变得复杂,并且不利于代码的复用。

例如:

点击查看代码
<button onclick="(function() {
    let date = new Date();
    let hours = date.getHours();
    let minutes = date.getMinutes();
    let seconds = date.getSeconds();
    alert('现在的时间是:'+ hours +':'+ minutes +':'+ seconds);
})()">现在的时间是?</button>

3、通过 JavaScript 获取元素并添加事件监听器(推荐方式)

可以先在 HTML 中给按钮一个id,然后在 JavaScript 中获取这个元素并添加事件监听器。

这种方式将 JavaScript 代码与 HTML 代码分离,更符合现代的编程规范。

首先通过document.addEventListener('DOMContentLoaded',...)确保在 DOM 加载完成后再获取元素,

然后使用document.getElementById('timeButton')获取按钮元素,

最后通过button.addEventListener('click',...)为按钮添加点击事件监听器。

这样的代码结构更清晰,便于维护和扩展。

例如:

点击查看代码
<button id="timeButton">现在的时间是?</button>
<script>
    document.addEventListener('DOMContentLoaded', function() {
        let button = document.getElementById('timeButton');
        button.addEventListener('click', function() {
            let date = new Date();
            let hours = date.getHours();
            let minutes = date.getMinutes();
            let seconds = date.getSeconds();
            alert('现在的时间是:'+ hours +':'+ minutes +':'+ seconds);
        });
    });
</script>

补充:

DOMContentLoaded 是指在 HTML 文档加载完成后,

DOM(Document Object Model)树已经构建完成并可被操作的状态。

这个事件通常会在页面上的所有资源都加载完毕后触发,包括图片、脚本等。

当 DOMContentLoaded 事件被触发时,

可以执行 JavaScript 代码来操作页面元素或动态加载其他资源。

需要注意的是,**虽然 DOMContentLoaded 表示 DOM 树已经构建完成**,

但并不代表所有的外部资源都已经加载完毕。

如果需要等待所有资源都加载完毕后再执行某些操作,

可以使用 window.load 事件或者 jQuery 的 $(document).ready() 方法。
posted @ 2024-11-28 16:56  青云Zeo  阅读(47)  评论(0编辑  收藏  举报