Advertisement
viligen

furnitureStore

Jun 17th, 2022
606
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve() {
  2.     const model = document.getElementById('model');
  3.     const year = document.getElementById('year');
  4.     const description = document.getElementById('description');
  5.     const price = document.getElementById('price');
  6.  
  7.     const btnAdd = document.getElementById('add');
  8.  
  9.     const tbody = document.getElementById('furniture-list');
  10.     const totalPrice = document.querySelector('td.total-price');
  11.  
  12.     btnAdd.addEventListener('click', (e) => {
  13.         e.preventDefault();
  14.         if (
  15.             !model.value ||
  16.             !year.value ||
  17.             !description.value ||
  18.             !price.value ||
  19.             isNaN(price.value) ||
  20.             Number(price.value) < 0 ||
  21.             isNaN(year.value) ||
  22.             Number(year.value) < 0
  23.         ) {
  24.             return;
  25.         }
  26.         let newTr1 = document.createElement('tr');
  27.         newTr1.className = 'info';
  28.         let newTdModel = document.createElement('td');
  29.         newTdModel.textContent = model.value;
  30.         newTr1.appendChild(newTdModel);
  31.         let newTdPrice = document.createElement('td');
  32.         newTdPrice.textContent = Number(price.value).toFixed(2);
  33.         newTr1.appendChild(newTdPrice);
  34.         let newBtnsTd = document.createElement('td');
  35.         let btnMoreInfo = document.createElement('button');
  36.         btnMoreInfo.textContent = 'More Info';
  37.         btnMoreInfo.className = 'moreBtn';
  38.         newBtnsTd.appendChild(btnMoreInfo);
  39.         let btnBuyIt = document.createElement('button');
  40.         btnBuyIt.textContent = 'Buy it';
  41.         btnBuyIt.className = 'buyBtn';
  42.         newBtnsTd.appendChild(btnBuyIt);
  43.         newTr1.appendChild(newBtnsTd);
  44.         tbody.appendChild(newTr1);
  45.  
  46.         let newTr2 = document.createElement('tr');
  47.         newTr2.className = 'hide';
  48.         let newTdYear = document.createElement('td');
  49.         newTdYear.textContent = 'Year: ' + year.value;
  50.         newTr2.appendChild(newTdYear);
  51.         let newTdDescription = document.createElement('td');
  52.         newTdDescription.colSpan = 3;
  53.         newTdDescription.textContent = 'Description: ' + description.value;
  54.         newTr2.appendChild(newTdDescription);
  55.         tbody.appendChild(newTr2);
  56.  
  57.         model.value = '';
  58.         year.value = '';
  59.         description.value = '';
  60.         price.value = '';
  61.  
  62.         btnMoreInfo.addEventListener('click', (e) => {
  63.             if (e.target.textContent === 'More Info') {
  64.                 e.target.textContent = 'Less Info';
  65.                 newTr2.style.display = 'contents';
  66.             } else {
  67.                 e.target.textContent = 'More Info';
  68.                 newTr2.style.display = 'none';
  69.             }
  70.         });
  71.         btnBuyIt.addEventListener('click', (e) => {
  72.             totalPrice.textContent = (
  73.                 Number(totalPrice.textContent) + Number(newTdPrice.textContent)
  74.             ).toFixed(2);
  75.             tbody.removeChild(newTr1);
  76.             tbody.removeChild(newTr2);
  77.         });
  78.     });
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement