Advertisement
Guest User

Untitled

a guest
May 23rd, 2019
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.35 KB | None | 0 0
  1. function solve() {
  2. let furnitureList;
  3. let listOfOrderedProducts = [];
  4. let totalPrice = 0;
  5. let decFactor = 0;
  6. let countOfOrdered = 0;
  7.  
  8. document.getElementsByTagName('button')[0].addEventListener('click', () => {
  9. furnitureList = JSON.parse(document.getElementsByTagName('textarea')[0].value);
  10. let table = document.getElementsByClassName('table')[0];
  11. for (let furniture of furnitureList) {
  12. let row = table.insertRow();
  13. let cell = row.insertCell();
  14. let img = document.createElement('img');
  15. img.setAttribute('src', furniture.img);
  16. cell.appendChild(img);
  17. cell = row.insertCell();
  18.  
  19. let name = document.createElement('p');
  20. name.innerHTML = furniture.name;
  21. cell.appendChild(name);
  22. cell = row.insertCell();
  23.  
  24. let price = document.createElement('p');
  25. price.innerHTML = Number(furniture.price);
  26. cell.appendChild(price);
  27. cell = row.insertCell();
  28.  
  29. let decFactor = document.createElement('p');
  30. decFactor.innerHTML = Number(furniture.decFactor);
  31. cell.appendChild(decFactor);
  32. cell = row.insertCell();
  33.  
  34. let checkBox = document.createElement('input');
  35. checkBox.setAttribute('type', 'checkbox');
  36. checkBox.disabled = true;
  37. cell.appendChild(checkBox);
  38. cell = row.insertCell();
  39. }
  40. for (let input of document.getElementsByTagName('input')) {
  41. input.disabled = false;
  42. input.addEventListener('change', function () {
  43. if (this.checked) {
  44. let nodeOfInput = input.parentNode;
  45. let nodeOfProduct = nodeOfInput.parentNode;
  46. let infoForProducts = nodeOfProduct.getElementsByTagName('td');
  47. let nameOfCheckedProduct = (infoForProducts[1].textContent).trim();
  48. let priceOfCheckedProduct = Number(infoForProducts[2].textContent);
  49. let decFactorOfCheckedProduct = Number(infoForProducts[3].textContent);
  50. listOfOrderedProducts.push(nameOfCheckedProduct);
  51. totalPrice += priceOfCheckedProduct;
  52. decFactor += decFactorOfCheckedProduct;
  53. countOfOrdered++;
  54. } else {
  55. let nodeOfInput = input.parentNode;
  56. let nodeOfProduct = nodeOfInput.parentNode;
  57. let infoForProducts = nodeOfProduct.getElementsByTagName('td');
  58. let nameOfUNCheckedProduct = (infoForProducts[1].textContent).trim();
  59. let priceOfUNCheckedProduct = Number(infoForProducts[2].textContent);
  60. let decFactorOfUNCheckedProduct = Number(infoForProducts[3].textContent);
  61. let indexOfUNChecked = listOfOrderedProducts.indexOf(nameOfUNCheckedProduct);
  62. listOfOrderedProducts.splice(indexOfUNChecked, 1);
  63. totalPrice -= priceOfUNCheckedProduct;
  64. decFactor -= decFactorOfUNCheckedProduct;
  65. countOfOrdered--;
  66. }
  67. }
  68. )
  69. };
  70. document.getElementsByTagName('button')[1].addEventListener('click', () => {
  71. let textArea = document.getElementsByTagName('textarea')[1];
  72. let productListPrintLine = `Bought furniture: ${listOfOrderedProducts.join(", ")}\n`;
  73. let pricePrintLine = `Total price: ${totalPrice.toFixed(2)}\n`;
  74. let decFactorPrintLine = `Average decoration factor: ${(decFactor / countOfOrdered).toFixed(1)}`;
  75.  
  76. textArea.value = productListPrintLine + pricePrintLine + decFactorPrintLine;
  77. })
  78. })
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement