Advertisement
bobo_bobkata

Untitled

Oct 28th, 2019
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.09 KB | None | 0 0
  1. function solve() {
  2. function addToClient(e) {
  3. let innerDiv = e.target.parentElement;
  4. let li = innerDiv.parentElement;
  5. let strong = li.getElementsByTagName("strong")[0];
  6. let quantity = strong.innerHTML.split(" ")[1];
  7. quantity--;
  8. strong.innerHTML = `Available: ${quantity}`;
  9. if (quantity <= 0) {
  10. li.remove();
  11. }
  12. let newLi = document.createElement("li");
  13. let oldSpan = Array.from(li.getElementsByTagName("span"))[0];
  14. newLi.innerHTML = oldSpan.innerHTML;
  15. let newStrong = document.createElement("strong");
  16. newStrong.innerHTML = Array.from(li.getElementsByTagName("strong"))[1].innerHTML;
  17. newLi.appendChild(newStrong);
  18. let toAppend = document.querySelector("#myProducts > ul");
  19. toAppend.appendChild(newLi);
  20. let totalPrice = document.querySelector("body > h1:nth-child(4)");
  21. let currentSum = Number(totalPrice.innerHTML.split(" ")[2]);
  22. let price = Number(Array.from(innerDiv.getElementsByTagName("strong"))[0].innerHTML);
  23. let newPrice = currentSum + price;
  24. let newTextPrice = `Total Price: ${newPrice.toFixed(2)}`
  25. totalPrice.innerHTML = newTextPrice;
  26. }
  27.  
  28. function createHTML(name, quantity, price) {
  29. let li = document.createElement("li");
  30. let span = document.createElement("span");
  31. span.innerHTML = name;
  32. let strong = document.createElement("strong");
  33. strong.innerHTML = `Available: ${quantity}`;
  34. let div = document.createElement("div");
  35. let divStrong = document.createElement("strong");
  36. divStrong.innerHTML = Number(price).toFixed(2);
  37. let button = document.createElement("button");
  38. button.innerHTML = "Add to Client's List";
  39. button.addEventListener("click", addToClient);
  40. div.appendChild(divStrong);
  41. div.appendChild(button);
  42. li.appendChild(span);
  43. li.appendChild(strong);
  44. li.appendChild(div);
  45. let toAppend = document.querySelector("#products > ul");
  46. toAppend.appendChild(li);
  47. }
  48.  
  49. function filterHandler(value) {
  50. let list = document.querySelector("#products > ul");
  51. Array.from(list.getElementsByTagName("li")).forEach(el => {
  52. let liValue = el.getElementsByTagName("span")[0].innerHTML;
  53. if (!liValue.toLowerCase().startsWith(value.toLowerCase())) {
  54. if (el.style.display === "") {
  55. el.style.display = "block";
  56. }
  57. if (el.style.display !== "none") {
  58. el.style.display = "none";
  59. }
  60. } else if (liValue.toLowerCase().startsWith(value.toLowerCase())) {
  61. if (el.style.display === "") {
  62. el.style.display = "block";
  63. }
  64. if (el.style.display === "none") {
  65. el.style.display = "block";
  66. }
  67. }
  68. });
  69. }
  70.  
  71. function buyHandler() {
  72. let ul = document.querySelector("#myProducts > ul");
  73. Array.from(ul.getElementsByTagName("li")).forEach(el=>el.remove());
  74. let totalPrice = document.querySelector("body > h1:nth-child(4)");
  75. let newTextPrice = `Total Price: 0.00`
  76. totalPrice.innerHTML = newTextPrice;
  77. }
  78.  
  79. function handler(e) {
  80. if (e.target.innerHTML === "Add") {
  81. e.preventDefault();
  82. let [name, quantity, price] = Array.from(document.getElementById("add-new").getElementsByTagName("input"));
  83. if (name.value !== "" && quantity.value !== "" && price.value !== "") {
  84. createHTML(name.value, quantity.value, price.value);
  85. }
  86. } else if (e.target.innerHTML === "Filter") {
  87. let filter = document.getElementById("filter");
  88. filterHandler(filter.value);
  89. } else if (e.target.innerHTML === "Buy") {
  90. buyHandler();
  91. }
  92. }
  93.  
  94. Array.from(document.getElementsByTagName("button")).forEach(btn => btn.addEventListener("click", handler));
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement