簡體   English   中英

刪除了類並希望將其添加回來

[英]removed Class and want to add it back

我編寫了一個簡單的javascript“清除購物清單”代碼。

我能夠刪除購物清單並添加兩條消息:一個說購物清單已被清除,另一個彈出一個按鈕,詢問是否有誤,您想撤消更改。

現在我的問題是,當您按下“撤消”按鈕時,該類不會被添加回來。

 // javascript var shoppingList = document.querySelector(".shoppingCart"); var toggleButton = document.querySelector("button.showList"); var clearedBox = document.querySelector(".clearedBox"); var clearedUndo = document.querySelector("button.clearedUndo"); //Toggle Shopping Cart toggleButton.addEventListener("click", () => { shoppingList.remove(".shoppingCart"); clearedBox.style.display = "block"; toggleButton.remove("button.showList"); }); //Undo Removal clearedUndo.addEventListener("click", () => { clearedUndo.createClass(".shoppingCart"); });
 html, body { margin: 0; padding: 0; margin-left:30px; } .clearedBox { display:none; } .clearedMessage { background:#D66A68; color: white; padding:10px; width:260px; text-align:center; border-radius:10px; } .clearedUndo { background:#1C77C3; color: white; padding:5px; width:225px; border-radius:5px; text-align:center; font-size:12px; }
 <html> <head> <link rel="stylesheet" href="index.css"> </head> <body> <h1>index.html</h1> <button class="showList">Show</button> <div class="shoppingCart"> <ul> <li>Milk</li> <li>Eggs</li> <li>Juice</li> <li>Pasta</li> <li>Water</li> <li>Donuts</li> </ul> <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et.</p> </div> <div class="clearedBox"> <p class="clearedMessage">Your Shopping cart is now cleared!</p> <button class="clearedUndo">Accidental? Undo your change!</button> </div> <script src="index.js"></script> </body> </html>

我認為這部分是錯誤的:

//Undo Removal
clearedUndo.addEventListener("click", () => {
   clearedUndo.createClass(".shoppingCart");
});

問題

  1. 不要使用elem.remove 。因為如果您撤消操作,則不存在任何元素。或者,您可以使用elem.classList.toggle

 // javascript var shoppingList = document.querySelector(".shoppingCart"); var toggleButton = document.querySelector("button.showList"); var clearedBox = document.querySelector(".clearedBox"); var clearedUndo = document.querySelector("button.clearedUndo"); //Toggle Shopping Cart toggleButton.addEventListener("click", () => { shoppingList.classList.toggle('hide') clearedBox.classList.toggle('show') //toggleButton.remove("button.showList"); }); //Undo Removal clearedUndo.addEventListener("click", () => { shoppingList.classList.toggle('hide') clearedBox.classList.toggle('show') });
 html, body { margin: 0; padding: 0; margin-left: 30px; } .clearedBox { display: none; } .hide{ display: none; } .show{ display: block; } .clearedMessage { background: #D66A68; color: white; padding: 10px; width: 260px; text-align: center; border-radius: 10px; } .clearedUndo { background: #1C77C3; color: white; padding: 5px; width: 225px; border-radius: 5px; text-align: center; font-size: 12px; }
 <html> <head> <link rel="stylesheet" href="index.css"> </head> <body> <h1>index.html</h1> <button class="showList">Show</button> <div class="shoppingCart"> <ul> <li>Milk</li> <li>Eggs</li> <li>Juice</li> <li>Pasta</li> <li>Water</li> <li>Donuts</li> </ul> <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et.</p> </div> <div class="clearedBox"> <p class="clearedMessage">Your Shopping cart is now cleared!</p> <button class="clearedUndo">Accidental? Undo your change!</button> </div> <script src="index.js"></script> </body> </html>

一旦你刪除它,它就消失了,如果你想用 JavaScript 把它放回去,那么所有的標記真的需要重新插入,所以我會考慮根據需要隱藏和顯示元素,通過將 JS 更改為此:

var shoppingList = document.querySelector(".shoppingCart");
var toggleButton = document.querySelector("button.showList");
var clearedBox = document.querySelector(".clearedBox");
var clearedUndo = document.querySelector("button.clearedUndo");

//Toggle Shopping Cart
toggleButton.addEventListener("click", () => {
    shoppingList.style.display = "none";
    clearedBox.style.display = "block";
    toggleButton.style.display = "none";
});

//Undo Removal
clearedUndo.addEventListener("click", () => {
    shoppingList.style.display = "block";
    clearedBox.style.display = "none";
    toggleButton.style.display = "block";
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM