Advertisement
ErolKZ

Untitled

Feb 5th, 2022
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.13 KB | None | 0 0
  1.  
  2. function solve() {
  3.  
  4. let generateButton = document.getElementsByTagName('button')[0];
  5.  
  6. let tableElement = document.getElementsByTagName('tbody')[0];
  7.  
  8.  
  9. generateButton.addEventListener('click', (e) => {
  10.  
  11. let textareaTextArr = e.target.previousElementSibling.value;
  12.  
  13. textareaTextArr = JSON.parse(textareaTextArr);
  14.  
  15.  
  16. for (let textareaText of textareaTextArr) {
  17.  
  18. let newRow = document.createElement('tr');
  19.  
  20. let newTd = document.createElement('td');
  21.  
  22. let imgElement = document.createElement('img');
  23.  
  24. let paragraphElement = document.createElement('p');
  25.  
  26. let inputElement = document.createElement('input');
  27.  
  28.  
  29. imgElement.src = textareaText.img;
  30.  
  31. newTd.appendChild(imgElement);
  32.  
  33. newRow.appendChild(newTd);
  34.  
  35. tableElement.appendChild(newRow);
  36.  
  37.  
  38. newTd = document.createElement('td');
  39.  
  40. paragraphElement.textContent = textareaText.name;
  41.  
  42. newTd.appendChild(paragraphElement);
  43.  
  44. newRow.appendChild(newTd);
  45.  
  46. tableElement.appendChild(newRow);
  47.  
  48.  
  49. newTd = document.createElement('td');
  50.  
  51. paragraphElement = document.createElement('p');
  52.  
  53. paragraphElement.textContent = textareaText.price;
  54.  
  55. newTd.appendChild(paragraphElement);
  56.  
  57. newRow.appendChild(newTd);
  58.  
  59. tableElement.appendChild(newRow);
  60.  
  61.  
  62. newTd = document.createElement('td');
  63.  
  64. paragraphElement = document.createElement('p');
  65.  
  66. paragraphElement.textContent = textareaText.decFactor;
  67.  
  68. newTd.appendChild(paragraphElement);
  69.  
  70. newRow.appendChild(newTd);
  71.  
  72. tableElement.appendChild(newRow);
  73.  
  74.  
  75. newTd = document.createElement('td');
  76.  
  77. inputElement.type = 'checkbox';
  78.  
  79. newTd.appendChild(inputElement);
  80.  
  81. newRow.appendChild(newTd);
  82.  
  83. tableElement.appendChild(newRow);
  84.  
  85. }
  86.  
  87.  
  88. });
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95. let buyButtonElement = document.getElementsByTagName('button')[1];
  96.  
  97. buyButtonElement.addEventListener('click', (e) => {
  98.  
  99.  
  100. let inputElements = document.querySelectorAll('input[type=checkbox]');
  101.  
  102. inputElements = Array.from(inputElements);
  103.  
  104. console.log(inputElements);
  105.  
  106. let arrOfNames = [];
  107.  
  108. let totalPrice = 0;
  109.  
  110. let avgDecFactor = 0;
  111.  
  112.  
  113. inputElements.forEach(el => {
  114.  
  115. let checkedOrNot = el.checked;
  116.  
  117. if (checkedOrNot) {
  118.  
  119. let curTdArr = el.parentElement.parentElement.querySelectorAll('td');
  120.  
  121. curTdArr = Array.from(curTdArr);
  122.  
  123. console.log(curTdArr);
  124.  
  125. let name = curTdArr[1].textContent;
  126.  
  127. let price = Number(curTdArr[2].textContent);
  128.  
  129. let decFactor = Number(curTdArr[3].textContent);
  130.  
  131. arrOfNames.push(name);
  132.  
  133. totalPrice += price;
  134.  
  135. avgDecFactor += decFactor;
  136.  
  137. }
  138.  
  139. });
  140.  
  141. avgDecFactor = avgDecFactor / arrOfNames.length;
  142.  
  143. totalPrice = totalPrice.toFixed(2);
  144.  
  145. let textareaBuyButton = e.target.previousElementSibling;
  146.  
  147. textareaBuyButton.textContent = `Bought furniture: ${arrOfNames.join(', ')}\nTotal price: ${totalPrice}\nAverage decoration factor: ${avgDecFactor}`;
  148.  
  149. console.log(textareaBuyButton);
  150.  
  151. });
  152.  
  153.  
  154. }
  155.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement