Advertisement
Guest User

Untitled

a guest
Nov 19th, 2018
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function newElement() {
  2.     let item = document.getElementById('task').value;
  3.     let newItem = document.createElement('li');
  4.     newItem.setAttribute('onclick','checkedItem(event)');
  5.     let textItem = document.createElement('p');
  6.     textItem.textContent = item;
  7.     newItem.appendChild(textItem);
  8.     addIcon(newItem);
  9.     document.getElementById('toDoList').appendChild(newItem);
  10.  
  11.     let toDoList = JSON.parse(localStorage.getItem('task')) || [];
  12.     toDoList.push({
  13.         item: item,
  14.         isChecked: false
  15.     });
  16.     localStorage.setItem('task', JSON.stringify(toDoList));
  17.  
  18.     document.forms[0].reset();
  19.  
  20.     if (item === '' || null) {
  21.         alert('Add some task!');
  22.         newItem.style.display = "none";
  23.     }
  24.  
  25. }
  26.  
  27.  
  28. function checkedItem(event) {
  29.     if (event.target.tagName === 'P') {
  30.         event.target.classList.toggle('checked');
  31.     }
  32.  
  33.     //update checked status
  34.     let toDoList = JSON.parse(localStorage.getItem('task')) || [];
  35.     let currentItemText = event.target.textContent;
  36.  
  37.     for (let i = 0; i < toDoList.length; i++) {
  38.         if (toDoList[i] && toDoList[i].item === currentItemText) {
  39.             toDoList[i].isChecked = !toDoList[i].isChecked;
  40.         }
  41.     }
  42.  
  43.     localStorage.setItem('task', JSON.stringify(toDoList));
  44. }
  45.  
  46. document.onkeydown = function (enter) {
  47.     let keyCode = enter.keyCode || enter.charCode;
  48.     if (keyCode === 13) {
  49.         event.preventDefault();
  50.         newElement();
  51.     }
  52. };
  53.  
  54. function onLoad() {
  55.     let toDoList = JSON.parse(localStorage.getItem('task')) || [];
  56.     for (let i = 0; i < toDoList.length; i++) {
  57.         let text = toDoList[i].item;
  58.         let newLi = document.createElement('li');
  59.         newLi.setAttribute('onclick','checkedItem(event)');
  60.         let newTextItem = document.createElement('p');
  61.         newTextItem.textContent = text;
  62.         if (toDoList[i].isChecked === true) {
  63.             newTextItem.classList.add('checked');
  64.         }
  65.         newLi.appendChild(newTextItem );
  66.         addIcon(newLi);
  67.         document.getElementById('toDoList').appendChild(newLi);
  68.     }
  69. }
  70.  
  71. function addIcon(element) {
  72.     let span = document.createElement("SPAN");
  73.     let txt = document.createTextNode("\u00D7");
  74.     span.className = "close";
  75.     span.setAttribute('onclick','removeItem(event)');
  76.     span.appendChild(txt);
  77.     element.appendChild(span);
  78. }
  79.  
  80. function removeItem(event) {
  81.     event.target.parentElement.remove();
  82.     removeItemInLocalStorage(event);
  83. }
  84.  
  85. function removeItemInLocalStorage(event) {
  86.     let toDoList = JSON.parse(localStorage.getItem('task')) || [];
  87.     let currentItemText = event.target.parentElement.firstChild.textContent;
  88.  
  89.     for (let i = 0; i < toDoList.length; i++) {
  90.         if (toDoList[i] && toDoList[i].item === currentItemText) {
  91.             toDoList.splice(i, 1);
  92.         }
  93.     }
  94.  
  95.     localStorage.setItem('task', JSON.stringify(toDoList));
  96. }
  97.  
  98. window.onload = ()=> {
  99.     onLoad();
  100. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement