javascript - 如何用JS中的替代方法替换这段代码中html中的onClick()方法?

标签 javascript html

我想用其他方法更改 HTML 中按钮的 onClick 方法,以不使用 onClick。我在互联网上找到了addEventListener,但不知道如何在这里替换?下面是我的代码:

function leapYear() {
    let input = document.getElementById("year");
    let year = parseInt(input.value);
    console.log(year);
    let output = document.getElementById("output");
    

    year = (year % 4 == 0) && (year % 100 != 0 || year % 400 == 0);
    output.innerHTML = 'Year ' + year + '. is' + (year ? '' : ' not') + ' leap year.';

}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>Leap Years</h1>
<p>Type a year:</p>
<div>
  <input id="year" type="text" size="24" />
  <button onclick="leapYear()">Check leap year</button> <br />
    <span id="output"></span>
    </div>
    <script src="LeapYear.js"></script>
</body>
</html>

最佳答案

addEventListener的第一个参数设置为'click',将第二个参数设置为函数:

function leapYear() {
    let input = document.getElementById("year");
    let year = parseInt(input.value);
    console.log(year);
    let output = document.getElementById("output");
    

    year = (year % 4 == 0) && (year % 100 != 0 || year % 400 == 0);
    output.innerHTML = 'Year ' + year + '. is' + (year && !isNaN(input.value) ? '' : ' not') + ' leap year.';

}

const button = document.querySelector('button');
button.addEventListener('click', leapYear)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>Leap Years</h1>
<p>Type a year:</p>
<div>
  <input id="year" type="text" size="24" />
  <button>Check leap year</button> <br />
    <span id="output"></span>
    </div>
    <script src="LeapYear.js"></script>
</body>
</html>

关于javascript - 如何用JS中的替代方法替换这段代码中html中的onClick()方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69309032/

相关文章:

javascript - 在多种条件下过滤对象数组

javascript - 当一个对象有额外的键时,如何使用 Lodash 比较 JSON 对象中的键和值?

html - 将最后一个字和图像保持在同一行

html - Nokogiri 能否将无序列表视为段落?

jquery - 列相同高度(列的一部分)+ bootstrap

javascript - 在 HTML 选择列表中选择选项时的 HTML 垂直居中选择

javascript - ES2015 类变量作用域

javascript - jQuery 上下文未按预期工作

jquery - 有没有办法让固定位置的元素在窗口大小调整一定量后停止移动?

PHP session 错误