Od szwagra dla szwagra
unknown
javascript
2 years ago
2.4 kB
9
Indexable
const mainInput = document.querySelector("input");
const firstList = document.querySelector("#pierwszaLista");
const secondList = document.querySelector("#drugaLista");
const form = document.querySelector("form");
const historyInput = document.querySelector(".history");
let mainTasksList = [];
let historyList = [];
let taskNum = 0;
const getFirstListElementHTML = (taskText) => {
const taskElementWrapper = document.createElement('li');
const taskSpan = document.createElement('span');
const removeTaskButton = document.createElement('button');
const taskId = `task${taskNum}`;
// dodanie id zeby latwiej bylo usuwac elementy
taskElementWrapper.id = taskId;
taskSpan.innerText = taskText;
removeTaskButton.innerText = 'Usuń';
const taskPosition = mainTasksList.length - 1;
removeTaskButton.addEventListener('click', () => {
mainTasksList.splice(taskPosition,1);
document.querySelector(`#${taskId}`).remove();
});
// dodawanie elementow do htmla
taskElementWrapper.appendChild(taskSpan);
taskElementWrapper.appendChild(removeTaskButton);
++taskNum;
return taskElementWrapper;
}
const getSecondListElementHTML = (taskText) => {
const listElement = document.createElement('li');
listElement.innerText = taskText;
listElement.addEventListener('click', () => firstList.appendChild(getFirstListElementHTML(taskText)));
return listElement;
}
const showHistory = (e) => {
secondList.innerHTML = '';
const { value } = e.target;
const matchingTasks = historyList.filter((task) => task.includes(value));
matchingTasks.forEach((taskText) => secondList.appendChild(getSecondListElementHTML(taskText)));
};
const addTask = (event) => {
event.preventDefault();
// warto sie tego zapisu nauczyc
// jak masz obiekt const obj = { a: 123, b: 234 } to mozesz zrobic
// const { a } = obj;
// i wtedy możesz sobie używać zmiennej a
const { value } = mainInput;
if (!value) { // czyli jak bedzie pustym stringiem
return;
}
// dodawanie do glownej listy i do historii
mainTasksList.push(value);
historyList.push(value);
// tworzenie elementu html
const taskElementWrapper = getFirstListElementHTML(value);
firstList.appendChild(taskElementWrapper);
mainInput.value = '';
};
form.addEventListener("submit", addTask);
historyInput.addEventListener("input", showHistory);
Editor is loading...