Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function solution() {
- let input = document.querySelector('input[type="text"]');
- let btnInput = document.querySelector('button');
- // взимам само ul списъците, за да работя с тях
- let uls = Array.from(document.querySelectorAll('ul'));
- btnInput.addEventListener('click', (e) => {
- e.preventDefault()
- let li = factory('li', input.value, 'gift')
- let sendBtn = factory('button', 'Send', 'sendButton')
- let discardBtn = factory('button', 'Discard', 'discardButton')
- li.appendChild(sendBtn);
- li.appendChild(discardBtn);
- uls[0].appendChild(li)
- sortUl(uls[0]);
- input.value = "";
- // задължително трябва да е () => иначе хваща само текущия this (е) и директно ще изпълни функцията
- // важно е да подавам ul списъка в който трябва да го преместя и li, само като референция на this за специфичния
- // html елемент
- sendBtn.addEventListener('click', () => move(li, uls[1]))
- discardBtn.addEventListener('click', ()=> move(li, uls[2]))
- })
- // Фактори функция за местене
- function move(li, uls){
- // тук вместо button мога да напиша всеки елемент който искам да премахна
- let arr = Array.from(li.querySelectorAll('button'));
- arr.forEach(e=>e.remove());
- uls.appendChild(li)
- }
- // Фактори функция за сортиране
- function sortUl(ul) {
- const elem = factory('li', 'content', 'gift')
- console.log(elem);
- // ако искам да е на определна позиция винаги,вместо сорт
- Array.from(ul.getElementsByTagName("LI"))
- .sort((a, b) => a.textContent.localeCompare(b.textContent))
- .forEach(li => ul.appendChild(li));
- console.log(ul);
- }
- // фактори функция за създаване на елемент
- function factory(type, content, className, attribute, attributeValue) {
- const result = document.createElement(type);
- result.textContent = content;
- if (className) {
- result.classList.add(className)
- }
- if (attribute) {
- result.setAttribute(attribute, attributeValue)
- }
- return result;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement