Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
139 changes: 72 additions & 67 deletions app.js
Original file line number Diff line number Diff line change
@@ -1,80 +1,85 @@
document.addEventListener('DOMContentLoaded', function(){
document.addEventListener('DOMContentLoaded', function () {
const list = document.querySelector('#book-list ul');
//delete books
list.addEventListener('click', function (e) {
if (e.target.className == 'delete') {
const li = e.target.parentElement;
list.removeChild(li);

const list = document.querySelector('#book-list ul');
const forms = document.forms;
}
})

//add books
const addForm = document.forms['add-book'];

// delete books
list.addEventListener('click', (e) => {
if(e.target.className == 'delete'){
const li = e.target.parentElement;
li.parentNode.removeChild(li);
}
});
addForm.addEventListener('submit', function (e) {
e.preventDefault();
var value = addForm.querySelector('input[type="text"]').value;

// add books
const addForm = forms['add-book'];
addForm.addEventListener('submit', function(e){
e.preventDefault();

// create elements
const value = addForm.querySelector('input[type="text"]').value;
const li = document.createElement('li');
const bookName = document.createElement('span');
const deleteBtn = document.createElement('span');

// add text content
bookName.textContent = value;
deleteBtn.textContent = 'delete';
//create elements
const li = document.createElement('li');
const bookName = document.createElement('Span');
const deleteBtn = document.createElement('span');

// add classes
bookName.classList.add('name');
deleteBtn.classList.add('delete');
//add content
if (value == "") {
alert('Please Enter a book title');
} else {
deleteBtn.textContent = 'delete';
bookName.textContent = value;

// append to DOM
li.appendChild(bookName);
li.appendChild(deleteBtn);
list.appendChild(li);
});
//add classes
bookName.classList.add('name')
deleteBtn.classList.add('delete')

// hide books
const hideBox = document.querySelector('#hide');
hideBox.addEventListener('change', function(e){
if(hideBox.checked){
list.style.display = "none";
} else {
list.style.display = "initial";
}
});
//append to document
li.appendChild(bookName);
li.appendChild(deleteBtn);
list.appendChild(li);
}
addForm.querySelector('input[type="text"]').value = "";
})

// filter books
const searchBar = forms['search-books'].querySelector('input');
searchBar.addEventListener('keyup', (e) => {
const term = e.target.value.toLowerCase();
const books = list.getElementsByTagName('li');
Array.from(books).forEach((book) => {
const title = book.firstElementChild.textContent;
if(title.toLowerCase().indexOf(e.target.value) != -1){
book.style.display = 'block';
} else {
book.style.display = 'none';
}
});
});
//hide books
const hideBox = document.querySelector('#hide');

// tabbed content
const tabs = document.querySelector('.tabs');
const panels = document.querySelectorAll('.panel');
tabs.addEventListener('click', (e) => {
if(e.target.tagName == 'LI'){
const targetPanel = document.querySelector(e.target.dataset.target);
Array.from(panels).forEach((panel) => {
if(panel == targetPanel){
panel.classList.add('active');
}else{
panel.classList.remove('active');
hideBox.addEventListener('change', function (e) {
if (hideBox.checked) {
list.style.display = "none";
} else {
list.style.display = 'block';
}
});
}
});
})
//filter books
const searchBar = document.forms['search-books'].querySelector('input');
searchBar.addEventListener('keyup', function (e) {
const term = e.target.value.toLowerCase();
const books = list.getElementsByTagName('li');
Array.from(books).forEach(function (book) {
const title = book.firstElementChild.textContent;
if (title.toLowerCase().indexOf(term) != -1) {
book.style.display = 'block';
} else {
book.style.display = 'none';
}
})
})
// tabbed content
const tabs = document.querySelector('.tabs');
const panels = document.querySelectorAll('.panel');

tabs.addEventListener('click', function (e) {
if (e.target.tagName == "LI") {
const targetPanel = document.querySelector(e.target.dataset.target);
panels.forEach(function (panel) {
if (panel == targetPanel) {
panel.classList.add('active');
} else {
panel.classList.remove('active');
}
})
}
})
})