亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

添加新元素時添加功能按鈕

添加新元素時添加功能按鈕

慕姐8265434 2022-09-23 21:58:16
我正在研究人們在第一次學習JavaScript時遇到的經典購物清單問題。因此,我可以很好地將新元素添加到列表中,但是當我嘗試使用刪除按鈕刪除這些項目時,這些項目將不會被刪除。切換按鈕也不起作用。有人可以幫忙嗎?這是我的代碼:<!DOCTYPE html><html><head>    <title>Javascript + DOM</title>    <link rel="stylesheet" type="text/css" href="style.css"></head><body>    <h1>Shopping List</h1>    <p id="first">Get it done today</p>    <input id="userinput" type="text" placeholder="enter items">    <button id="enter">Enter</button>    <ul>        <li> Notebook <button class="Delete">Delete!</button></li>        <li>Jello <button class="Delete">Delete!</button></li>         <li>Spinach <button class="Delete">Delete!</button></li>        <li>Rice <button class="Delete">  Delete!</button></li>        <li>Birthday Cake <button class="Delete"> Delete!</button></li>        <li>Candles <button class="Delete"> Delete!</button></li>    </ul>    <script type="text/javascript" src="script.js"></script></body></html>這是JavaScript,我無法弄清楚問題出在哪里:var button = document.getElementById("enter");var input = document.getElementById("userinput");var ul = document.querySelector("ul");var li = document.querySelectorAll("li");var deleteButtons = document.getElementsByClassName("Delete");function inputLength() {    return input.value.length;}function createListElement() {    var li = document.createElement("li");    li.appendChild(document.createTextNode(input.value));    ul.appendChild(li);    var button = document.createElement("button");    button.appendChild(document.createTextNode("Delete!"));    button.classList.add("Delete")    li.appendChild(button);}function addListAfterClick() {    if (inputLength() > 0) {        createListElement();    }}function addListAfterKeypress(event) {    if (inputLength() > 0 && event.keyCode === 13) {        createListElement();    }}button.addEventListener("click", addListAfterClick);input.addEventListener("keypress", addListAfterKeypress);for(var i=0; i<li.length; i++){ li[i].addEventListener("click", liClick);}function liClick(){  this.classList.toggle("done");}
查看完整描述

1 回答

?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

創建動態內容的問題是,當您添加元素時,此元素是裸的,這意味著沒有任何事件偵聽器。您在代碼中添加的事件偵聽器是現有按鈕,不會傳遞到新按鈕,您需要再次綁定新按鈕。更一般地說,事件偵聽器綁定到特定的元素,而不是像按鈕這樣的一般想法。您的解決方案非常簡單,只需在元素創建后再次運行綁定即可。希望我幫助


查看完整回答
反對 回復 2022-09-23
  • 1 回答
  • 0 關注
  • 109 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號