Advertisement
milovan7

Christmas Gifts Delivery / JS Advanced Exam

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