diff --git a/app.js b/app.js index b131860..4023cfa 100644 --- a/app.js +++ b/app.js @@ -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'); + } + }) + } + }) })