Nikolcho

ivan3

Jun 27th, 2020
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve() {
  2.     const container = document.querySelector('#container');
  3.     const adoptionList = document.querySelector('#adoption > ul');
  4.     const adoptedList = document.querySelector('#adopted > ul');
  5.  
  6.     const nameInput = container.querySelectorAll('input').item(0);
  7.     const ageInput = container.querySelectorAll('input').item(1);
  8.     const kindInput = container.querySelectorAll('input').item(2);
  9.     const curOwnerInput = container.querySelectorAll('input').item(3);
  10.    
  11.     container.querySelector('button').addEventListener('click', addPet);
  12.  
  13.     function addPet(e) {
  14.         e.preventDefault();
  15.  
  16.         const name = nameInput.value;
  17.         const age = ageInput.value === '' ? '' : Number(ageInput.value);
  18.         const kind = kindInput.value;
  19.         const curOwner = curOwnerInput.value;
  20.  
  21.         if (name.trim().length <= 0 || typeof age !== 'number' || isNaN(age)
  22.          || kind.trim().length <= 0 || curOwner.trim().length <= 0) {
  23.              return;
  24.         }
  25.  
  26.         const contactBtn = el('button', 'Contact with owner');
  27.         const takeBtn = el('button', 'Yes! I take it!');
  28.         const checkedBtn = el('button', 'Checked');
  29.  
  30.         const takeDiv = el('div', [
  31.             el('input', '', { placeholder: 'Enter your names'}),
  32.             takeBtn
  33.         ])
  34.  
  35.  
  36.         let newPet = el('li', [
  37.             el('p', [
  38.                 el('strong', `${name}`),
  39.                 ' is a ',
  40.                 el('strong', `${age}`),
  41.                 ' year old ',
  42.                 el('strong', `${kind}`)
  43.             ]),
  44.             el('span', `Owner: ${curOwner}`),
  45.             contactBtn
  46.         ]);
  47.  
  48.         contactBtn.addEventListener('click', contactOwner);
  49.         takeBtn.addEventListener('click', takeIt);
  50.         checkedBtn.addEventListener('click', removePet)
  51.  
  52.         function contactOwner(e) {
  53.             contactBtn.remove();
  54.             newPet.remove();
  55.             newPet = el('li', [
  56.                 el('p', [
  57.                     el('strong', `${name}`),
  58.                     ' is a ',
  59.                     el('strong', `${age}`),
  60.                     ' year old ',
  61.                     el('strong', `${kind}`)
  62.                 ]),
  63.                 el('span', `Owner: ${curOwner}`),
  64.                 takeDiv
  65.             ]);
  66.             adoptionList.appendChild(newPet);
  67.         }
  68.  
  69.         function takeIt(e) {
  70.             let newOwner = newPet.querySelector('input').value;
  71.             if (newOwner.trim() !== '') {
  72.                 newPet.remove();
  73.                 newPet = el('li', [
  74.                     el('p', [
  75.                         el('strong', `${name}`),
  76.                         ' is a ',
  77.                         el('strong', `${age}`),
  78.                         ' year old ',
  79.                         el('strong', `${kind}`)
  80.                     ]),
  81.                     el('span', `New Owner: ${newOwner}`),
  82.                     checkedBtn
  83.                 ]);
  84.                 adoptedList.appendChild(newPet);
  85.             }
  86.         }
  87.  
  88.         function removePet(e) {
  89.             newPet.remove();
  90.         }
  91.  
  92.         adoptionList.appendChild(newPet);
  93.  
  94.         nameInput.value = '';
  95.         ageInput.value = '';
  96.         kindInput.value = '';
  97.         curOwnerInput.value = '';
  98.         }
  99.  
  100.  
  101.     function el(type, content, attributes) {
  102.         const result = document.createElement(type);
  103.        
  104.         if (attributes !== undefined) {
  105.             Object.assign(result, attributes);
  106.         }
  107.    
  108.         if (Array.isArray(content)) {
  109.             content.forEach(append);
  110.         } else {
  111.             append(content);
  112.         }
  113.    
  114.         function append(node) {
  115.             if (typeof node === 'string') {
  116.                 node = document.createTextNode(node);
  117.             }
  118.             result.appendChild(node);
  119.         }
  120.    
  121.         return result;
  122.     }
  123. }
Add Comment
Please, Sign In to add comment