Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function solve() {
- function addToClient(e) {
- let innerDiv = e.target.parentElement;
- let li = innerDiv.parentElement;
- let strong = li.getElementsByTagName("strong")[0];
- let quantity = strong.innerHTML.split(" ")[1];
- quantity--;
- strong.innerHTML = `Available: ${quantity}`;
- if (quantity <= 0) {
- li.remove();
- }
- let newLi = document.createElement("li");
- let oldSpan = Array.from(li.getElementsByTagName("span"))[0];
- newLi.innerHTML = oldSpan.innerHTML;
- let newStrong = document.createElement("strong");
- newStrong.innerHTML = Array.from(li.getElementsByTagName("strong"))[1].innerHTML;
- newLi.appendChild(newStrong);
- let toAppend = document.querySelector("#myProducts > ul");
- toAppend.appendChild(newLi);
- let totalPrice = document.querySelector("body > h1:nth-child(4)");
- let currentSum = Number(totalPrice.innerHTML.split(" ")[2]);
- let price = Number(Array.from(innerDiv.getElementsByTagName("strong"))[0].innerHTML);
- let newPrice = currentSum + price;
- let newTextPrice = `Total Price: ${newPrice.toFixed(2)}`
- totalPrice.innerHTML = newTextPrice;
- }
- function createHTML(name, quantity, price) {
- let li = document.createElement("li");
- let span = document.createElement("span");
- span.innerHTML = name;
- let strong = document.createElement("strong");
- strong.innerHTML = `Available: ${quantity}`;
- let div = document.createElement("div");
- let divStrong = document.createElement("strong");
- divStrong.innerHTML = Number(price).toFixed(2);
- let button = document.createElement("button");
- button.innerHTML = "Add to Client's List";
- button.addEventListener("click", addToClient);
- div.appendChild(divStrong);
- div.appendChild(button);
- li.appendChild(span);
- li.appendChild(strong);
- li.appendChild(div);
- let toAppend = document.querySelector("#products > ul");
- toAppend.appendChild(li);
- }
- function filterHandler(value) {
- let list = document.querySelector("#products > ul");
- Array.from(list.getElementsByTagName("li")).forEach(el => {
- let liValue = el.getElementsByTagName("span")[0].innerHTML;
- if (!liValue.toLowerCase().startsWith(value.toLowerCase())) {
- if (el.style.display === "") {
- el.style.display = "block";
- }
- if (el.style.display !== "none") {
- el.style.display = "none";
- }
- } else if (liValue.toLowerCase().startsWith(value.toLowerCase())) {
- if (el.style.display === "") {
- el.style.display = "block";
- }
- if (el.style.display === "none") {
- el.style.display = "block";
- }
- }
- });
- }
- function buyHandler() {
- let ul = document.querySelector("#myProducts > ul");
- Array.from(ul.getElementsByTagName("li")).forEach(el=>el.remove());
- let totalPrice = document.querySelector("body > h1:nth-child(4)");
- let newTextPrice = `Total Price: 0.00`
- totalPrice.innerHTML = newTextPrice;
- }
- function handler(e) {
- if (e.target.innerHTML === "Add") {
- e.preventDefault();
- let [name, quantity, price] = Array.from(document.getElementById("add-new").getElementsByTagName("input"));
- if (name.value !== "" && quantity.value !== "" && price.value !== "") {
- createHTML(name.value, quantity.value, price.value);
- }
- } else if (e.target.innerHTML === "Filter") {
- let filter = document.getElementById("filter");
- filterHandler(filter.value);
- } else if (e.target.innerHTML === "Buy") {
- buyHandler();
- }
- }
- Array.from(document.getElementsByTagName("button")).forEach(btn => btn.addEventListener("click", handler));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement