In diesem Artikel wird der spezifische JavaScript-Code zur Implementierung eines einfachen Einkaufswagens zu Ihrer Information bereitgestellt. Der spezifische Inhalt ist wie folgt Code: <!DOCTYPE html> <html> <Kopf> <meta charset="utf-8" /> <title>ES6-Einkaufswagen</title> <style type="text/css"> Tisch { Breite: 50%; Position: relativ; Rand: 0px automatisch; Rahmen-Zusammenbruch: Zusammenbruch; Rand: 1px durchgehend grau; Box-Größe: Rahmenbox; } das { Hintergrundfarbe: Koralle; Höhe: 2,5em; Rand: 0 automatisch; } tr { Höhe: 2,5em; Rand: 0 automatisch; Textausrichtung: zentriert; } .Kasten { Rand: automatisch; Breite: 50%; } </Stil> </Kopf> <Text> <h3 style="text-align: center;margin-top: 100px;">Ich schätze, dir gefällt</h3> <Tabellengrenze="1px" id="Tabelle aktualisieren"> <tbody> <tr> <th>Seriennummer</th> <th>Produktname</th> <th>Stückpreis</th> <th>Betrieb</th> </tr> <tr Klasse="Update-Waren"> <td>1</td> <td>Roujiamo</td> <td>8</td> <td><input type="button" class="update" value="Zum Warenkorb hinzufügen" /></td> </tr> <tr class="update-goods"> <td>2</td> <td>Den Teig kneten</td> <td>6</td> <td><input type="button" class="update" value="Zum Warenkorb hinzufügen" /></td> </tr> <tr class="update-goods"> <td>3</td> <td>Gefroren</td> <td>3</td> <td><input type="button" class="update" value="Zum Warenkorb hinzufügen" /></td> </tr> <tr Klasse="Update-Waren"> <td>4</td> <td>Hammelsuppenbrötchen</td> <td>25</td> <td><input type="button" class="update" value="Zum Warenkorb hinzufügen" /></td> </tr> </tbody> </Tabelle> <h3 style="text-align: center;">Warenkorb</h3> <table border="1px" id="Waren"> <tbody> <tr> <th>Seriennummer</th> <th>Produktname</th> <th>Menge</th> <th>Stückpreis</th> <th>Zwischensumme</th> <th>Betrieb</th> </tr> <tr> <td>1</td> <td>Roujiamo</td> <td> <Schaltflächentyp="Schaltfläche">-</Schaltfläche> <span class="waren-num">0</span> <Schaltflächentyp="Schaltfläche">+</Schaltfläche> </td> <td> Stückpreis: <span class="goods-price">8</span> </td> <td> Zwischensumme: <span class="goods-single-price">0</span> </td> <td> <input type="button" class="deled" value="Löschen" /> </td> </tr> <tr> <td>2</td> <td>Den Teig kneten</td> <td> <Schaltflächentyp="Schaltfläche">-</Schaltfläche> <span class="waren-num">0</span> <Schaltflächentyp="Schaltfläche">+</Schaltfläche> </td> <td> Stückpreis:<span class="goods-price">6</span> </td> <td> Zwischensumme: <span class="goods-single-price">0</span> </td> <td> <input type="button" class="deled" value="Löschen" /> </td> </tr> <tr> <td colspan="5"> Es gibt insgesamt <span id="goods-total-num">0</span> Artikel mit einem Gesamtpreis von <span id="goods-total-price">0</span> Yuan. </td> </tr> </tbody> </Tabelle> </body> </html> <Skripttyp="text/javascript"> Klasse Warenkorb { Konstruktor() { dies.eventBind(); } //Gesamtmenge der Waren abrufen und aktualisieren getGoodsNumAndUpdate() { //Menge aller Waren abrufen let oGoodsNum = document.getElementsByClassName("goods-num"); //Den Gesamtwert der Warenanzahl speichern let goodsTotalNum = 0; //Schleife durch alle Waren for (let i = 0; i < oGoodsNum.length; i++) { //Menge aller geschleiften Waren addieren goodsTotalNum += Number(oGoodsNum[i].innerHTML); } //Die Gesamtzahl der Waren in der Zusammenfassungsspalte abrufen let oGoodsTotalNum = document.getElementById("goods-total-num"); //Weisen Sie die Summe der in der Schleife erhaltenen Warenanzahl der Gesamtwarenanzahl in der Zusammenfassungsspalte zu oGoodsTotalNum.innerHTML = goodsTotalNum; } //Den Gesamtpreis der Ware abrufen und aktualisieren getGoodsPriceAndUpdate() { //Zwischensumme abrufen let oGoodsSinglePrice = document.getElementsByClassName("goods-single-price"); //Erstellen Sie ein neues Element, das den Zwischensummenwert akzeptiert (für die endgültige Zuweisung an das Element, das die Zwischensumme erhält) Lassen Sie Warengesamtpreis = 0; //Schleife durch alle Zwischensummen for (let i = 0; i < oGoodsSinglePrice.length; i++) { //Alle Zwischensummenmengen addieren, durchlaufen goodsTotalPrice += Number(oGoodsSinglePrice[i].innerHTML); } //Den Gesamtpreis der Zusammenfassungsspalte abrufen let oGoodsTotalPrice = document.getElementById("goods-total-price"); //Die Summe der in der Schleife ermittelten Zwischensummenmengen dem Gesamtpreis in der Zusammenfassungsspalte zuweisen oGoodsTotalPrice.innerHTML = goodsTotalPrice; } //2. Holen Sie sich die Zwischensumme getSinglePrice(num, price) { //Die Zwischensumme jeder Zeile ist gleich dem Produkt aus dem Stückpreis und dem Produkt dieser Zeile. return num * price; } // Plus-Button-Methode addGoods(btn) { //Holen Sie sich das vorherige Geschwisterelement des Pluszeichens (den mittleren Wert) let oGoodsNum = btn.vorherigesElementGeschwister; //1. Nach dem Klicken erhöht sich der Wert um eins oGoodsNum.innerHTML = Number(oGoodsNum.innerHTML) + 1; //Stückpreis abrufen (das untergeordnete Element des nächsten Elements des übergeordneten btn-Elements) let oPrice = btn.parentNode.nextElementSibling.firstElementChild; // Holen Sie sich die Zwischensumme (das untergeordnete Element des nächsten Elements des nächsten Elements des übergeordneten Elements) let oSinglePrice = btn.parentNode.nextElementSibling.nextElementSibling.firstElementChild; //2. Den Zwischensummenwert erneut abrufen und der Zwischensumme oSinglePrice.innerHTML = this.getSinglePrice(oGoodsNum.innerHTML, oPrice.innerHTML) zuweisen; //3. Gesamtwarenmenge abrufen und aktualisieren (Aufruf erneut ausführen > Daten aktualisieren) dies.getGoodsNumAndUpdate(); //4. Gesamtpreis der Ware abrufen und aktualisieren (aufrufen von „Erneut ausführen > Daten aktualisieren“) dies.getGoodsPriceAndUpdate(); } //Minus-Button-Methode minGoods(btn) { //Holen Sie sich das nächste Geschwisterelement des Minuszeichens (den mittleren Wert) let oGoodsNum = btn.nextElementSibling; //Beurteilen, ob die Anzahl der Waren größer als Null ist if (oGoodsNum.innerHTML > 0) { //1. Nach dem Klicken verringert sich der Wert um eins oGoodsNum.innerHTML = oGoodsNum.innerHTML - 1; //Stückpreis abrufen (das untergeordnete Element des nächsten Elements des übergeordneten btn-Elements) let oPrice = btn.parentNode.nextElementSibling.firstElementChild; // Holen Sie sich die Zwischensumme (das untergeordnete Element des nächsten Elements des nächsten Elements des übergeordneten Elements) let oSinglePrice = btn.parentNode.nextElementSibling.nextElementSibling.firstElementChild; //2. Den Zwischensummenwert erneut abrufen und der Zwischensumme oSinglePrice.innerHTML = this.getSinglePrice(oGoodsNum.innerHTML, oPrice.innerHTML) zuweisen; //3. Gesamtwarenmenge abrufen und aktualisieren (Aufruf erneut ausführen > Daten aktualisieren) dies.getGoodsNumAndUpdate(); //4. Gesamtpreis der Ware abrufen und aktualisieren (aufrufen von „Erneut ausführen > Daten aktualisieren“) dies.getGoodsPriceAndUpdate(); } } //Methode der Schaltfläche „Löschen“ delGoods(btn) { //Das Einkaufswagen-Tabellenelement abrufen let god = document.getElementById("goods"); //Holen Sie sich das übergeordnete Element des übergeordneten Elements dieser Schaltfläche. let oTr = btn.parentNode.parentNode; //Dann dieses Element löschen (bezieht sich hier auf das gesamte durch die Schaltfläche ausgewählte tr-Element) oTr.entfernen(); //Zahlen neu anordnen (alle tr-Unterelemente unter dem Tabellenelement mit dem Namen „god“ durchlaufen) (beim zweiten Unterelement beginnen und die letzte Zwischensummenzeile entfernen) für (lass i = 1; i < god.firstElementChild.children.length - 1; i++) { // Weise den Elementwert i nach der Schleife dem ersten Kindelement td unter dem Kindelement tr unter dem Tabellenelement mit dem Namen god zu. Gott.firstElementChild.children[i].firstElementChild.innerHTML = i; } //3. Gesamtwarenmenge abrufen und aktualisieren (Aufruf erneut ausführen > Daten aktualisieren) dies.getGoodsNumAndUpdate(); //4. Gesamtpreis der Ware abrufen und aktualisieren (aufrufen von „Erneut ausführen > Daten aktualisieren“) dies.getGoodsPriceAndUpdate(); } //Bestellmethode update() hinzufügen { //Alle Elemente mit dem Klassennamen update abrufen let btn = document.getElementsByClassName("update"); //Alle Elemente mit der ID „update-table“ abrufen. let updateTable = document.getElementById("update-table"); //Das Einkaufswagen-Tabellenelement abrufen let god = document.getElementById("goods"); //Alle untergeordneten Elemente tr des ersten untergeordneten Elements tbody des Einkaufswagen-Tabellenelements abrufen lass Götter = Gott.erstesElementKind.Kinder; //Dem Zielelement wird false zugewiesen. lass flag = false; //Dadurch soll verhindert werden, dass das Warenkorbobjekt im Ereignistext überschrieben wird. let that = this; //Durchlaufe alle Elemente mit Klassennamen update for (let i = 0; i < btn.length; i++) { //Klick-Ereignis mit Klassennamen update btn[i].onclick = function() { //Durchlaufe alle Unterelemente tr des ersten Unterelements tbody des Einkaufswagen-Tabellenelements für (let j = 0; j < gods.length - 1; j++) { //Schleife, um zu bestimmen, ob dieses Gericht im Menü vorhanden ist. Wenn dieses Gericht vorhanden ist, addiere 1. //Die ursprüngliche Absicht besteht darin, das gleichnamige Produkt im Einkaufswagen zu finden. Wenn es eines gibt, führen Sie die Anzahl der Produkte in den Warenkorbdaten + 1 aus. Wenn nicht, setzen Sie das Flag auf „true“ und springen Sie aus der Beurteilung heraus. //Dies ist der Klassenname des Eingabe-Tags zum Aktualisieren des Elements. //Der Inhalt des ersten untergeordneten Elements unter der Durchquerung aller untergeordneten Elemente tr in der Einkaufswagentabelle == Der Inhalt des vorherigen Geschwisterelements des übergeordneten Elements td mit dem Klassennamen „Element aktualisieren“ Eingabe, wenn (gods[j].children[1].innerHTML == this.parentNode.previousElementSibling.previousElementSibling.innerHTML) { //Der Inhalt des zweiten Unterelements unter der Durchquerung aller Unterelemente tr in der Einkaufswagentabelle (dh die Anzahl der Artikel im Einkaufswagen) + 1 Götter[j].Kinder[2].Kinder[1].innerHTML = " " + (Zahl(Götter[j].Kinder[2].Kinder[1].innerHTML) + 1) + " "; //Der Inhalt des vierten Unterelements unter der Durchquerung aller Unterelemente tr in der Einkaufswagentabelle (dh der Wert der Zwischensumme im Einkaufswagen wird zugewiesen) gods[j].children[4].innerHTML = 'Zwischensumme: <span class="goods-single-price">' + Götter[j].Kinder[2].Kinder[1].innerHTML * Götter[j].Kinder[3].erstesElementKind.innerHTML + '</span>'; //3. Gesamtwarenmenge abrufen und aktualisieren (Aufruf erneut ausführen > Daten aktualisieren) dass.getGoodsNumAndUpdate(); //4. Gesamtpreis der Ware abrufen und aktualisieren (aufrufen von „Erneut ausführen > Daten aktualisieren“) dass.getGoodsPriceAndUpdate(); //Weisen Sie dem Flag-Wert „false“ zu. Flagge = falsch; //Aus dieser Schleife springen break; } anders { //Ausführen, wenn der Inhalt des ersten untergeordneten Elements aller untergeordneten Elemente tr in der Einkaufswagentabelle durchlaufen wurde! = der Inhalt des vorherigen Geschwisterelements des übergeordneten Elements td mit dem Klassennamen „Elementeingabe aktualisieren“//Flag auf „true“ setzen Flagge = wahr; } } wenn (Flagge) { //Wenn es kein solches Gericht gibt, fügen Sie hinzu //Erstellen Sie einen Knoten tr Lassen Sie tr = document.createElement("tr"); //Füge den Inhalt dieses Knotens hinzu tr.innerHTML= '<td>'+(Götter.Länge-1)+'</td>'+ '<td>'+dieser.übergeordneterKnoten.vorherigesElementGeschwister.vorherigesElementGeschwister.innerHTML+ '</td><td><button type="button">-</button><span class="goods-num"> 1 </span><button type="button"> +</button></td><td>Stückpreis:<span class="goods-price">' + dieser.übergeordneterKnoten.vorherigesElementGeschwister.innerHTML + '</span></td><td>Zwischensumme:<span class="goods-single-price">' + dieser.übergeordneterKnoten.vorherigesElementGeschwister.innerHTML + '</span></td><td><input type="button" class="deled" value="Löschen" /></td>'; //Neue Elemente zu tbodygod.firstElementChild.insertBefore(tr, god.firstElementChild.lastElementChild) hinzufügen; //Ereignisschaltfläche auslösen that.eventBind(); //3. Gesamtwarenmenge abrufen und aktualisieren (Aufruf erneut ausführen > Daten aktualisieren) dass.getGoodsNumAndUpdate(); //4. Gesamtpreis der Ware abrufen und aktualisieren (aufrufen von „Erneut ausführen > Daten aktualisieren“) dass.getGoodsPriceAndUpdate(); } } // Ordne die Reihenfolge der Elemente in „Guess You Like“ neu an for (let i = 1; i < updateTable.firstElementChild.children.length; i++) { // Weisen Sie der neu hinzugefügten Produktseriennummer die sortierten Werte zu updateTable.firstElementChild.children[i].firstElementChild.innerHTML = i; } } } //Ereignisschaltfläche auslösen eventBind() { //Alle Schaltflächen mit dem Tag-Namen botton abrufen let oBtns = document.getElementsByTagName("button"); //Dadurch soll verhindert werden, dass das Warenkorbobjekt im Ereignistext überschrieben wird. let that = this; //Alle Schaltflächen in einer Schleife ausführen for (let i = 0; i < oBtns.length; i++) { if (i % 2) {//Löst die Methode addGoods() aus, wenn es eine ungerade Zahl ist oBtns[i].onclick = function() { das.addGoods(dies); } } sonst {//Löse die Methode minGoods() aus, wenn es eine gerade Zahl ist oBtns[i].onclick = function() { das.minGoods(dies); } } } //Alle Elemente mit dem Klassennamen deled abrufen let oDelBtns = document.getElementsByClassName("deled"); //Schleife durch alle gelöschten Elemente for (let i = 0; i < oDelBtns.length; i++) { //Klick-Ereignis des gelöschten Elements oDelBtns[i].onclick = function() { //Rufen Sie die Methode delGoods() auf, um den Löscheffekt auszuführen that.delGoods(this); } } //Aufruf zum Hinzufügen der Reihenfolge this.update(); } } sei c = neuer Einkaufswagen(); </Skript> Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: So verwenden Sie den MySQL-Autorisierungsbefehl „grant“
>>: nginx löst das Problem der langsamen Bildanzeige und des unvollständigen Downloads
Inhaltsverzeichnis 1. Ziehen Sie das Bild 1.1 Zie...
Inhaltsverzeichnis 1. Generieren Sie einen abstra...
Code kopieren Der Code lautet wie folgt: <div ...
Bei der Entwicklung eines Backend-Verwaltungsproj...
In diesem Artikelbeispiel wird der spezifische Co...
Inhaltsverzeichnis 1. Erster Blick auf COUNT 2. D...
1. Voraussetzungen Bei der Entwicklung von Front-...
1. Melden Sie sich bei MySQL an und verwenden Sie...
Schritt 1: Bestätigen Sie die Architektur Ihres S...
Die Auswirkung der Vervollständigung einer Menüle...
Docker-Container-Verbindung 1. Netzwerk-Port-Mapp...
Inhaltsverzeichnis 1. Folgen Sie dem Assistenten,...
Schritt 1: Den aktuellen Kernel anzeigen rew $ un...
Datenbankanwendungen sind ein unverzichtbarer Bes...
verwenden Flexible Boxen spielen beim Front-End-L...