Advertisement
Guest User

Furniture

a guest
Jun 12th, 2020
247
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve() {
  2.     const tBody = document.getElementsByTagName('tbody')[0];
  3.     const textInput = document.getElementsByTagName('textarea')[0];
  4.     const generateBtn = document.getElementsByTagName('button')[0];
  5.     const buyBtn = document.getElementsByTagName('button')[1];
  6.     const resultOutput = document.getElementsByTagName('textarea')[1];
  7.  
  8.     generateBtn.addEventListener('click', function () {
  9.         let furnitureArray = JSON.parse(textInput.value);
  10.         for (furniture of furnitureArray) {
  11.             //Create tr
  12.             const newTr = document.createElement('tr');
  13.             //Create image td
  14.             const newImageTd = document.createElement('td');
  15.             const newImageImg = document.createElement('img');
  16.             newImageImg.src = furniture['img'];
  17.             newImageTd.appendChild(newImageImg);
  18.             newTr.appendChild(newImageTd);
  19.             //Create name td
  20.             const newNameTd = document.createElement('td');
  21.             const newNameP = document.createElement('p');
  22.             newNameP.innerHTML = furniture['name'];
  23.             newNameTd.appendChild(newNameP);
  24.             newTr.appendChild(newNameTd);
  25.             //Create price td
  26.             const newPriceTd = document.createElement('td');
  27.             const newPriceP = document.createElement('p');
  28.             newPriceP.innerHTML = furniture['price'];
  29.             newPriceTd.appendChild(newPriceP);
  30.             newTr.appendChild(newPriceTd);
  31.             //Create decoration td
  32.             const newDecorationTd = document.createElement('td');
  33.             const newDecorationP = document.createElement('p');
  34.             newDecorationP.innerHTML = furniture['decFactor'];
  35.             newDecorationTd.appendChild(newDecorationP);
  36.             newTr.appendChild(newDecorationTd);
  37.             //Create checkbox td
  38.             const newCheckboxTd = document.createElement('td');
  39.             const newCheckbox = document.createElement('input');
  40.             newCheckbox.type = 'checkbox';
  41.             newCheckboxTd.appendChild(newCheckbox);
  42.             newTr.appendChild(newCheckboxTd);
  43.             //Append tr to the table
  44.             tBody.appendChild(newTr);
  45.         }
  46.     });
  47.  
  48.     buyBtn.addEventListener('click', function () {
  49.         const trs = document.querySelectorAll('tbody tr');
  50.         let totalFurniture = {
  51.             furniture: '',
  52.             totalPrice: 0,
  53.             totalDecFactor: 0,
  54.         };
  55.         let counter = 0;
  56.         for (i = 0; i < trs.length; ++i) {
  57.             if (
  58.                 trs[i]
  59.                     .getElementsByTagName('td')[4]
  60.                     .getElementsByTagName('input')[0].checked
  61.             ) {
  62.                 totalFurniture['furniture'] += `${
  63.                     trs[i]
  64.                         .getElementsByTagName('td')[1]
  65.                         .getElementsByTagName('p')[0].innerHTML
  66.                 }, `;
  67.                 totalFurniture['totalPrice'] += Number(
  68.                     trs[i]
  69.                         .getElementsByTagName('td')[2]
  70.                         .getElementsByTagName('p')[0].innerHTML
  71.                 );
  72.                 totalFurniture['totalDecFactor'] += Number(
  73.                     trs[i]
  74.                         .getElementsByTagName('td')[3]
  75.                         .getElementsByTagName('p')[0].innerHTML
  76.                 );
  77.                 counter++;
  78.             }
  79.         }
  80.         if (totalFurniture['furniture'] !== '') {
  81.             resultOutput.value = `Bought furniture: ${totalFurniture[
  82.                 'furniture'
  83.             ].substring(
  84.                 0,
  85.                 totalFurniture['furniture'].length - 2
  86.             )}\nTotal price: ${totalFurniture['totalPrice'].toFixed(
  87.                 2
  88.             )}\nAverage decoration factor: ${totalFurniture['totalDecFactor'] / counter}`;
  89.         }
  90.     });
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement