Notes App - Code Explanation
HTML STRUCTURE
<div class="note-input">
<input type="text" id="noteTitle" placeholder="Note title...">
<textarea id="noteContent" placeholder="Write your note..."></textarea>
<button onclick="addNote()">Add Note</button>
</div>
<div class="notes-list" id="notesList"></div>
JAVASCRIPT CODE
let notes = JSON.parse(localStorage.getItem('notes')) || [];
function addNote() {
const title = document.getElementById('noteTitle').value;
const content = document.getElementById('noteContent').value;
if (!title || !content) {
alert('Please fill in all fields');
return;
}
const note = {
id: Date.now(),
title: title,
content: content,
date: new Date().toLocaleDateString()
};
notes.push(note);
saveNotes();
displayNotes();
document.getElementById('noteTitle').value = '';
document.getElementById('noteContent').value = '';
}
function deleteNote(id) {
notes = notes.filter(note => note.id !== id);
saveNotes();
displayNotes();
}
function displayNotes() {
const notesList = document.getElementById('notesList');
notesList.innerHTML = '';
notes.forEach(note => {
const noteCard = document.createElement('div');
noteCard.className = 'note-card';
noteCard.innerHTML = `
<div class="note-title">${note.title}</div>
<div class="note-content">${note.content}</div>
<div class="note-date">${note.date}</div>
<button onclick="deleteNote(${note.id})">Delete</button>
`;
notesList.appendChild(noteCard);
});
}
function saveNotes() {
localStorage.setItem('notes', JSON.stringify(notes));
}
KEY FEATURES
✓ Create New Notes with Title & Content
✓ localStorage Persistence (Data Saved)
✓ Display All Notes in Grid
✓ Delete Individual Notes
✓ Automatic Date Stamping
✓ Input Validation
✓ Clear Input Fields After Adding
LEARNING CONCEPTS
• localStorage API (getItem, setItem, JSON)
• Array Methods (push, filter)
• Object Creation & Manipulation
• Date Object (toLocaleDateString)
• Dynamic DOM Element Creation
• Event Listeners
• JSON Serialization
← Back to Project