Advertisement
Liliana797979

cristmas gifts delivery - js advanced exam

Oct 22nd, 2021
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2.      
  3. function solution() {
  4.  
  5.     let input = document.querySelector('input');
  6.     let addButton = document.querySelector('button');
  7.     let gifts = document.querySelector('.container > section:nth-of-type(2) ul');
  8.     let sentGifts = document.querySelector('.container > section:nth-of-type(3) ul');
  9.     let discardedGifts = document.querySelector('.container > section:nth-of-type(4) ul');
  10.  
  11.     addButton.addEventListener('click', addGift);
  12.  
  13.     function addGift() {
  14.  
  15.         if (input.value.trim()) {
  16.  
  17.             let sendButton = document.createElement('button');
  18.             sendButton.setAttribute('id', 'sendButton');
  19.             sendButton.textContent = 'Send';
  20.  
  21.             let discardButton = document.createElement('button');
  22.             discardButton.setAttribute('id', 'discardButton');
  23.             discardButton.textContent = 'Discard';
  24.  
  25.             let item = document.createElement('li');
  26.             item.setAttribute('class', 'gift');
  27.             item.textContent = input.value;
  28.             item.appendChild(sendButton);
  29.             item.appendChild(discardButton);
  30.  
  31.             gifts.appendChild(item);
  32.  
  33.             // sort gifts alphabetically
  34.             Array.from(gifts.querySelectorAll('li'))
  35.                 .sort((a, b) => a.textContent.localeCompare(b.textContent))
  36.                 .forEach(item => gifts.appendChild(item));
  37.  
  38.             input.value = null;
  39.  
  40.             [sendButton, discardButton].forEach(btn => btn.addEventListener('click', manageGifts));
  41.         }
  42.     }
  43.  
  44.     function manageGifts(btn) {
  45.  
  46.         let item = btn.target.parentNode;
  47.         item.lastElementChild.remove();
  48.         item.lastElementChild.remove();
  49.  
  50.         if (btn.target.textContent === 'Send') {
  51.             sentGifts.appendChild(item);
  52.         } else {
  53.             discardedGifts.appendChild(item);
  54.         }
  55.     }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement