Advertisement
nikolayneykov

Untitled

May 23rd, 2019
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve () {
  2.   let textAreaElements = document.getElementsByTagName('textarea')
  3.   let buttonsElement = document.getElementsByTagName('button')
  4.   let tbody = document.getElementsByTagName('tbody')[0]
  5.  
  6.   document.getElementsByTagName('input')[0].disabled = false
  7.   buttonsElement[0].addEventListener('click', generate)
  8.   buttonsElement[1].addEventListener('click', buy)
  9.  
  10.   function generate () {
  11.     let furnitureListInput = JSON.parse(textAreaElements[0].value)
  12.     for (let i = 0; i < furnitureListInput.length; i++) {
  13.       let table = document.getElementsByTagName('tr')[1].cloneNode(true)
  14.       addFurniture(furnitureListInput[i], table)
  15.     }
  16.   }
  17.  
  18.   function addFurniture (furniture, table) {
  19.     table.getElementsByTagName('img')[0].src = furniture['img']
  20.     table.getElementsByTagName('p')[0].textContent = furniture['name']
  21.     table.getElementsByTagName('p')[1].textContent = furniture['price']
  22.     table.getElementsByTagName('p')[2].textContent = furniture['decFactor']
  23.     tbody.appendChild(table)
  24.   }
  25.  
  26.   function buy () {
  27.     let furniture = []
  28.     let totalPrice = 0
  29.     let averageFactor = 0
  30.     let checkbox = Array.from(document.getElementsByTagName('input'))
  31.     for (let i = 0; i < checkbox.length; i++) {
  32.       if (checkbox[i].checked) {
  33.         let tableElements = checkbox[i].parentElement.parentElement
  34.         let name = tableElements.getElementsByTagName('p')[0].textContent
  35.         furniture.push(name)
  36.         let price = tableElements.getElementsByTagName('p')[1].textContent
  37.         totalPrice += +price
  38.         let decFactor = tableElements.getElementsByTagName('p')[2].textContent
  39.         averageFactor += +decFactor
  40.       }
  41.     }
  42.     document.getElementsByTagName(
  43.       'textarea'
  44.     )[1].value += `Bought furniture: ${furniture.join(', ')}\n`
  45.     document.getElementsByTagName(
  46.       'textarea'
  47.     )[1].value += `Total price: ${totalPrice.toFixed(2)}\n`
  48.     document.getElementsByTagName(
  49.       'textarea'
  50.     )[1].value += `Average decoration factor: ${averageFactor /
  51.       furniture.length}`
  52.   }
  53.  
  54.   ;(function () {
  55.     let newTr = document.createElement('tr')
  56.  
  57.     let imgTd = document.createElement('td')
  58.     let imgTag = document.createElement('img')
  59.     imgTd.appendChild(imgTag)
  60.  
  61.     let productTd = document.createElement('td')
  62.     let productP = document.createElement('p')
  63.     productTd.appendChild(productP)
  64.  
  65.     let priceTd = document.createElement('td')
  66.     let priceP = document.createElement('p')
  67.     priceTd.appendChild(priceP)
  68.  
  69.     let decFacTd = document.createElement('td')
  70.     let decFacP = document.createElement('p')
  71.     decFacTd.appendChild(decFacP)
  72.  
  73.     let checkBoxTd = document.createElement('td')
  74.     let checkBoxInput = document.createElement('input')
  75.     checkBoxInput.setAttribute('type', 'checkbox')
  76.     checkBoxTd.appendChild(checkBoxInput)
  77.  
  78.     newTr.appendChild(imgTd)
  79.     newTr.appendChild(productTd)
  80.     newTr.appendChild(priceTd)
  81.     newTr.appendChild(decFacTd)
  82.     newTr.appendChild(checkBoxTd)
  83.  
  84.     tbody.appendChild(newTr)
  85.   })()
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement