dunyto

06. Furniture

Jun 4th, 2022
1,072
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve() {
  2.     document.querySelector('input').disabled = false;
  3.     let newItems = JSON.parse(document.querySelectorAll('textarea')[0].value);
  4.     let boughtItems = document.querySelectorAll('textarea')[1];
  5.     let [genBtn, buyBtn] = Array.from(document.querySelectorAll('button'));
  6.     genBtn.addEventListener('click', generateItem);
  7.     buyBtn.addEventListener('click', buyItem);
  8.  
  9.     function generateItem(ev) {
  10.         if (newItems.length > 0) {
  11.             let newLine = document.createElement('tr');
  12.             let currentItem = newItems.shift();
  13.  
  14.             let td1 = document.createElement('td');
  15.             let td1Img = document.createElement('img');
  16.             td1Img.src = currentItem['img'];
  17.             td1.appendChild(td1Img);
  18.             newLine.appendChild(td1);
  19.  
  20.             let td2 = document.createElement('td');
  21.             let td2Para = document.createElement('p');
  22.             td2Para.textContent = currentItem['name'];
  23.             td2.appendChild(td2Para);
  24.             newLine.appendChild(td2);
  25.  
  26.             let td3 = document.createElement('td');
  27.             let td3Para = document.createElement('p');
  28.             td3Para.textContent = currentItem['price'];
  29.             td3.appendChild(td3Para);
  30.             newLine.appendChild(td3);
  31.  
  32.             let td4 = document.createElement('td');
  33.             let td4Para = document.createElement('p');
  34.             td4Para.textContent = currentItem['decFactor'];
  35.             td4.appendChild(td4Para);
  36.             newLine.appendChild(td4);
  37.  
  38.             let td5 = document.createElement('td');
  39.             let td5Input = document.createElement('input');
  40.             td5Input.type = 'checkbox';
  41.             td5.appendChild(td5Input);
  42.             newLine.appendChild(td5);
  43.  
  44.             document.getElementsByTagName('tbody')[0].appendChild(newLine);
  45.         } else {
  46.             alert("No new items found!");
  47.         }
  48.     }
  49.  
  50.     function buyItem(ev) {
  51.         boughtItems.disabled = false;
  52.         let cbs = Array.from(document.querySelectorAll('tbody tr td input')).filter(cb => cb.checked);
  53.         let myItems = [];
  54.         let myPrice = 0;
  55.         let myDF = 0;
  56.  
  57.         cbs.forEach(cb => {
  58.             myItems.push(cb.parentElement.previousElementSibling.previousElementSibling.previousElementSibling.firstElementChild.textContent);
  59.             myPrice += Number(cb.parentElement.previousElementSibling.previousElementSibling.firstElementChild.textContent);
  60.             myDF += Number(cb.parentElement.previousElementSibling.firstElementChild.textContent);
  61.         });
  62.  
  63.         boughtItems.value += `Bought furniture: ${myItems.join(", ")}\n`;
  64.         boughtItems.value += `Total price: ${myPrice.toFixed(2)}\n`;
  65.         boughtItems.value += `Average decoration factor: ${myDF / cbs.length.toFixed(2) }`;
  66.     }
  67. }
Advertisement
Add Comment
Please, Sign In to add comment