-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
72 lines (52 loc) · 1.67 KB
/
script.js
File metadata and controls
72 lines (52 loc) · 1.67 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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
const ADDITEMS = document.querySelector(".add-items");
const LISTING = document.querySelector(".listing");
const ITEMS = JSON.parse(localStorage.getItem("items")) || [];
let idNum = localStorage.getItem("idNum") || 0;
function populateItems() {
LISTING.innerHTML = ITEMS.map((item) => {
return `<li class="list-item" id="${item.idNum}"><a href="${
item.LINK
}" title="${item.DESC}">${
item.DESC ? item.DESC : item.LINK
}</a><button class="delete-btn">Delete</button></li>`;
}).join("");
const DELETEBTN = document.querySelectorAll(".delete-btn");
DELETEBTN.forEach((button) => {
button.addEventListener("click", deleteItem);
});
}
function addItem(e) {
e.preventDefault(); //Prevents it from refreshing
const LINK = this.querySelector("[name=link]").value;
const DESC = this.querySelector("[name=description]").value;
idNum++;
localStorage.setItem("idNum", idNum);
ITEMS.unshift({
LINK,
DESC,
idNum,
});
//should be setting the entire array
localStorage.setItem("items", JSON.stringify(ITEMS));
populateItems();
this.reset(); //clears a form
}
function deleteItem() {
let check = confirm("Are you sure?");
if (check !== true) {
return;
} else {
let filteredItem = ITEMS.filter((item) => {
return item.idNum.toString() === this.parentNode.id;
});
console.log(filteredItem[0]);
console.log(ITEMS);
console.log(ITEMS.indexOf(filteredItem[0]));
let deleteIndex = ITEMS.indexOf(filteredItem[0]);
ITEMS.splice(deleteIndex, 1);
localStorage.setItem("items", JSON.stringify(ITEMS));
populateItems();
}
}
populateItems();
ADDITEMS.addEventListener("submit", addItem);