Advertisement
bebo231312312321

Untitled

May 28th, 2023
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve() {
  2.   // capture elements
  3.   let textAreas = document.querySelectorAll('textarea');
  4.   let buttons = document.querySelectorAll('button');
  5.  
  6.   let inputTxtArea = textAreas[0];
  7.  
  8.   let outputTxtArea = textAreas[1];
  9.   //create buttons
  10.   let generateBtn = buttons[0];
  11.   let buyBtn = buttons[1];
  12.   // adding events with handlers
  13.   generateBtn.addEventListener('click', generateFunc)
  14.   buyBtn.addEventListener('click', buyBtnFunc);
  15.   // event handlers
  16.   function generateFunc(){
  17.     // getting what I need
  18.     let inputValue = JSON.parse(inputTxtArea.value); // това е обект а не елемент от обекта
  19. // Това няма как да работи така , трябва да мине през цикъл, защото може да имаш повече от 1 обект за input
  20. inputValue.forEach(element=>{
  21.       let image = element.img;
  22.       let name = element.name;
  23.       let price = Number(element.price);
  24.       let decFac = Number(element.decFactor);
  25.  
  26.        //creating 1 table row tag
  27.     let tr = document.createElement('tr');
  28.     let td1 = document.createElement('td');
  29.     let tdImg2 = document.createElement('img')
  30.     tdImg2.src = image
  31.     // в твоето решение никъде не закачаш img към  td1 и него към tr който си създал
  32.     td1.appendChild(tdImg2);
  33.     tr.appendChild(td1);
  34.     // в решението ти си закачил параграф към td2  който не си направил още
  35.     let td2 = document.createElement('td');
  36.     let tdParagraph1 = document.createElement('p');
  37.     tdParagraph1.textContent = name;
  38.     td2.appendChild(tdParagraph1);
  39.     tr.appendChild(td2);
  40.     let td3 = document.createElement('td')
  41.     let priceParag = document.createElement('p');
  42.     priceParag.textContent = price;
  43.     td3.appendChild(priceParag);
  44.     tr.appendChild(td3);
  45.     let td4 = document.createElement('td');
  46.     let decFacParag = document.createElement('p');
  47.     decFacParag.textContent = decFac;
  48.     td4.appendChild(decFacParag);
  49.     tr.appendChild(td4);
  50.     let td5 = document.createElement('td');
  51.     let checkBox = document.createElement('input');
  52.     checkBox.type = 'checkbox'
  53.     td5.appendChild(checkBox);
  54.     tr.appendChild(td5);
  55.     let body = document.querySelector('tbody')
  56.     body.appendChild(tr)
  57.     })
  58.    
  59.  
  60.   //   // creating table body tag
  61.   //  
  62.   //   //creating the elements I need and inserting them into my new created td.
  63.   //
  64.   //   //paragraph content
  65.   //  
  66.   //   td2.appendChild(tdParagraph);
  67.   //   tdParagraph.textContent = name;
  68.   //   tr.appendChild(td2)
  69.   //   //image url
  70.   //
  71.   //  
  72.   //       tdImg2.src = image;
  73.   //       console.log(tdImg2);
  74.   //     td1.appendChild(tdImg2)
  75.   //     tr.appendChild(td1)
  76.   //     let td2 = document.createElement('td')
  77.   //   //price paragraph
  78.   //  
  79.   //       priceParag.textContent = price;
  80.   //       td3.appendChild(priceParag);
  81.   //       tr.appendChild(td3);
  82.   //       let td4 = document.createElement('td')
  83.   //   // decFac paragraph
  84.   //
  85.   //       decFacParag.textContent = decFac;
  86.   //       td4.appendChild(decFacParag)
  87.   //       tr.appendChild(td4)
  88.   //  
  89.   //   // creating checkBox
  90.   //  
  91.   //    
  92.   //    
  93.    
  94.   //  
  95.   // }
  96.  
  97.   // function buyBtnFunc(){
  98.   //  
  99.  
  100.   //  
  101.  
  102.   //   })
  103.   //   let totalPrice = priceArr.reduce((acc, currentValue) => acc + currentValue,0);
  104.   //   let decFacTotal = decFacArr.reduce((acc, currentValue) => acc + currentValue,0);
  105.   //   let avgDecFac = decFacTotal / decFacArr.length
  106.   //   outputTxtArea.textContent = `"Bought furniture: ${namesArr.join(', ')}\nTotal price: ${totalPrice.toFixed(2)}\nAverage decoration factor:
  107.   //   ${avgDecFac}`
  108.    }
  109.    
  110.    function buyBtnFunc(e){
  111.  
  112.     let checkboxList = document.querySelectorAll('input[type="checkbox"]'); // - така се изписва правилно , а не така 'input[type=checkbox]'
  113.  
  114.     let checkBoxArr = Array.from(checkboxList);
  115.     let namesArr = [];
  116.      let priceArr = 0;
  117.     let decFacArr = 0;  // никакъв смисъл това да е масив за да ползваш просто  единн reduce !!!
  118.  
  119.        checkBoxArr.forEach( x => {
  120.   //       let parentX = x.parentNode; -даже незнам какво е parentNode!!!
  121.  
  122.  
  123.       //       let tr = parentX.parentNode;
  124.       //       namesArr.push(tr.childNodes[1].textContent);
  125.       //       let price = Number(tr.childNodes[2].textContent);
  126.       //       priceArr.push(price);
  127.       //       let decFac = Number(tr.childNodes[3].textContent);
  128.       //       decFacArr.push(decFac);
  129.           if(x.checked){
  130.             let parentX = x.parentElement.parentElement;
  131.             // console.log(parentX)
  132.             let info = Array.from(parentX.querySelectorAll('p'));
  133.             namesArr.push(info[0].textContent);
  134.             priceArr+= Number(info[1].textContent);
  135.             decFacArr+=Number(info[2].textContent)
  136.           }
  137.           outputTxtArea.textContent = `Bought furniture: ${namesArr.join(', ')}\nTotal price: ${priceArr.toFixed(2)}\nAverage decoration factor: ${(decFacArr / namesArr.length)}`;
  138.      
  139.          })
  140.  
  141.   }
  142. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement