Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function solution() {
- let input = document.querySelector('input');
- let addGiftButton = getElementByInnerText('Add gift', 'button');
- let addedGifts = [];
- let sentGifts = [];
- let discardedGifts = [];
- let addedUL;
- let sentUL;
- let discardedUL;
- addGiftButton.addEventListener('click', (event) => {
- event.preventDefault();
- let giftName = input.value;
- addedGifts.push(giftName);
- addedGifts.sort();
- addedUL = getElementByInnerText('List of gifts', 'h2').parentNode.getElementsByTagName('ul')[0];
- addedUL.innerHTML = '';
- for (let i = 0; i < addedGifts.length; i++) {
- let liElement = `<li class="gift">${addedGifts[i]}<button id="sendButton">Send</button><button id="discardButton">Discard</button></li>`;
- addedUL.innerHTML += liElement;
- }
- input.value = '';
- let sendButton = document.querySelector('#sendButton');
- let discardButton = document.querySelector('#discardButton');
- sendButton.addEventListener('click', sendGift);
- discardButton.addEventListener('click', discardGift);
- });
- function getElementByInnerText(innerText, tagName) {
- let listOfElements = document.getElementsByTagName(tagName);
- for (let i = 0; i < listOfElements.length; i++) {
- if (listOfElements[i].innerText === innerText) {
- return listOfElements[i];
- }
- }
- }
- function sendGift(event) {
- let name = event.target.parentNode.firstChild.nodeValue;
- sentGifts.push(name);
- sentUL = getElementByInnerText('Sent gifts', 'h2').parentNode.getElementsByTagName('ul')[0];
- let list = buildUL(sentGifts, false);
- sentUL.innerHTML = list;
- buildListWithGifts(name);
- };
- function discardGift(event) {
- let name = event.target.parentNode.firstChild.nodeValue;
- discardedGifts.push(name);
- discardedUL = getElementByInnerText('Discarded gifts', 'h2').parentNode.getElementsByTagName('ul')[0];
- let list = buildUL(discardedGifts, false);
- discardedUL.innerHTML = list;
- buildListWithGifts(name);
- };
- function buildUL(elements, withButtons) {
- let list = "";
- for (let i = 0; i < elements.length; i++) {
- let buttons = "<button id='sendButton' onclick='sendGift(event)'>Send</button><button id='discardButton' onclick='discardGift(event)'>Discard</button>";
- let li = "<li class='gift'>" + elements[i];
- if (withButtons) {
- li += buttons;
- }
- li += "</li>";
- list += li;
- }
- return list;
- };
- function buildListWithGifts(elementToRemove) {
- if (elementToRemove) {
- const index = addedGifts.indexOf(elementToRemove);
- if (index > -1) {
- addedGifts.splice(index, 1);
- }
- }
- let list = buildUL(addedGifts, true);
- addedUL.innerHTML = list;
- }
- }
Add Comment
Please, Sign In to add comment