[英]JavaScript click addEventListener not working on my code
我試圖讓JavaScript監聽器工作,但沒有任何改變。
這是完整的代碼:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
#trigger {
padding: 20px;
background-color: red;
border: 1px solid white;
width: 100px;
cursor: pointer;
}
#box {
padding: 20px;
background-color: green;
border: 1px solid white;
width: 100px;
cursor: pointer;
}
</style>
</head>
<body>
<div id="trigger">Click Here</div>
<div id="box">
content should change
</div>
<script type="text/javascript">
document.addEventListener("click", () => {
document.getElementById("trigger"), () => {
document.getElementById("box").innerHTML = "New Box Text";
}
});
</script>
</body>
</html>
我知道我可以使用jQuery做到這一點,但我想用純粹的,普通的JavaScript做到這一點。
當我點擊#trigger
, #box
文本沒有改變。 我做錯了什么?
為了僅運行代碼,當DOM完全加載和解析時,在DOMContentLoaded
事件下添加一個evenet偵聽器,然后使用querySelector選擇具有#trigger
id的元素,然后向其添加一個click
事件偵聽器並再次使用querySelector
選擇具有#box
id的元素並相應地修改其.innerHTML
:
document.addEventListener('DOMContentLoaded', () => {
document.querySelector("#trigger").addEventListener('click', () => {
document.querySelector("#box").innerHTML = "New Box Text";
});
});
使用querySelector和querySelectorAll的好處是,在選擇元素時,它們提供了與jQuery相比的類似功能。
例:
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> #trigger { padding: 20px; background-color: red; border: 1px solid white; width: 100px; cursor: pointer; } #box { padding: 20px; background-color: green; border: 1px solid white; width: 100px; cursor: pointer; } </style> </head> <body> <div id="trigger">Click Here</div> <div id="box"> content should change </div> <script type="text/javascript"> document.addEventListener('DOMContentLoaded', () => { document.querySelector("#trigger").addEventListener('click', () => { document.querySelector("#box").innerHTML = "New Box Text"; }); }); </script> </body> </html>
將偵聽器添加到box元素而不是整個頁面:
document.getElementById("trigger").addEventListener("click", () => document.getElementById("box").innerHTML = "New Box Text" );
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> #trigger { padding: 20px; background-color: red; border:1px solid white; width: 100px; cursor: pointer; } #box { padding: 20px; background-color: green; border:1px solid white; width: 100px; cursor: pointer; } </style> </head> <body> <div id="trigger">Click Here</div> <div id="box"> content should change </div> </body> </html>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.