-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript-solved.js
More file actions
49 lines (43 loc) · 1.28 KB
/
script-solved.js
File metadata and controls
49 lines (43 loc) · 1.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
const selectItem = document.querySelector('.body ul');
const selectForm = document.querySelector('.todo');
selectItem.addEventListener('click', (e) => {
if(e.target.tagName==='LI') {
if(e.target.classList.contains('done')) {
e.target.classList.remove('done');
} else {
e.target.classList.add('done');
}
}
if(e.target.classList.contains('remove')) {
e.target.parentNode.remove()
}
})
selectForm.addEventListener('submit', (e) => {
e.preventDefault();
const input = e.target.task.value;
if(validateInput(input, e.target.task)) {
selectItem.insertAdjacentElement('afterbegin', newItem(e.target.task.value));
e.target.task.value = '';
}
});
const validateInput = (input, element) => {
if(input) {
element.parentNode.classList.remove('error');
return true;
} else {
element.parentNode.classList.add('error');
return false;
}
}
const newItem = (content) => {
const createAItem = document.createElement('li');
createAItem.textContent = content;
createAItem.insertAdjacentElement('afterbegin', removeButton());
return createAItem;
}
const removeButton = () => {
const createRemoveBtn = document.createElement('span');
createRemoveBtn.classList.add('remove');
createRemoveBtn.textContent = 'X';
return createRemoveBtn;
}