バニラJSチャレンジDay 11
42667 ワード
🗓 実施日:3月18日
📎 7.0 ~ 7.4
今日から4日チャレンジ
羽毛ダンスの実力を自慢させてください.最も難しい要求
今日は5つ聞いて明日は5つ聞いて日曜日は1つのプロジェクトを聞きます
7.0 Setup
📎 7.0 ~ 7.4
今日から4日チャレンジ
羽毛ダンスの実力を自慢させてください.最も難しい要求
今日は5つ聞いて明日は5つ聞いて日曜日は1つのプロジェクトを聞きます
7.0 Setup
htmlに新しいjsを追加し、2つの関連要素を追加します.
index.html<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="css/style.css">
<title>Momentum App</title>
</head>
<body>
<form id="login-form" class="hidden">
<input required maxlength="15" type="text" placeholder="What is your name?" />
<button>Log In</button>
</form>
<h2 id="clock">00:00:00</h2>
<h1 id="greeting" class="hidden"></h1>
<form id="todo-form">
<input type="text" placeholder="Write a To Do and Press Enter" required/>
</form>
<ul id="todo-list"></ul>
<div id="quote">
<span></span>
<span></span>
</div>
<script src="js/greetings.js"></script>
<script src="js/clock.js"></script>
<script src="js/quotes.js"></script>
<script src="js/background.js"></script>
<script src="js/todo.js"></script>
</body>
</html>
todo.js// todo-form에서 적으면 javascript에서 todo-list에 추가해주기
const toDoForm = document.getElementById("todo-form");
const toDoInput = toDoForm.querySelector("input");
const toDoList = document.getElementById("todo-list");
function handleToDoSubmit(event) {
event.preventDefault();
const newToDo = toDoInput.value;
toDoInput.value = "";
}
toDoForm.addEventListener("submit", handleToDoSubmit);
7.1 Adding ToDos
私たちが書いた2つのテキストをspan、liに入れ、ulに入れます.const toDoForm = document.getElementById("todo-form");
const toDoInput = toDoForm.querySelector("input");
const toDoList = document.getElementById("todo-list");
function paintToDo(newTodo) {
// toDo를 그리는 역할
const li = document.createElement("li");
const span = document.createElement("span");
// li 안에 span을 넣을 거래
li.appendChild(span);
span.innerText = newTodo;
toDoList.appendChild(li);
}
function handleToDoSubmit(event) {
event.preventDefault();
const newToDo = toDoInput.value;
toDoInput.value = "";
paintToDo(newToDo);
}
toDoForm.addEventListener("submit", handleToDoSubmit);
7.2 Deleting To Dos
event.target.parentElementを使用してxという名前のコンテンツをボタンに入れ、押したときに消えます(何が押されたかを知るために)
todo.jsconst toDoForm = document.getElementById("todo-form");
const toDoInput = toDoForm.querySelector("input");
const toDoList = document.getElementById("todo-list");
function deleteToDo(event) { // target: 클릭된 element
const li = event.target.parentElement;
li.remove();
}
function paintToDo(newTodo) {
const li = document.createElement("li");
const span = document.createElement("span");
span.innerText = newTodo;
const button = document.createElement("button");
button.innerText = "❌";
button.addEventListener("click", deleteToDo);
li.appendChild(span);
li.appendChild(button);
toDoList.appendChild(li);
}
function handleToDoSubmit(event) {
event.preventDefault();
const newToDo = toDoInput.value;
toDoInput.value = "";
paintToDo(newToDo);
}
toDoForm.addEventListener("submit", handleToDoSubmit);
7.3 Saving To Dos
localStorageに保存
保存時はa、b、cではなくtoStringとして保存
todo.jsconst toDoForm = document.getElementById("todo-form");
const toDoInput = toDoForm.querySelector("input");
const toDoList = document.getElementById("todo-list");
const toDos = [];
function saveToDos() { // 저장 중,,
localStorage.setItem("todos", JSON.stringify(toDos)); // 배열을 stringify로 저장해서 배열 형태로
}
function deleteToDo(event) {
const li = event.target.parentElement;
li.remove();
}
function paintToDo(newTodo) {
const li = document.createElement("li");
const span = document.createElement("span");
span.innerText = newTodo;
const button = document.createElement("button");
button.innerText = "❌";
button.addEventListener("click", deleteToDo);
li.appendChild(span);
li.appendChild(button);
toDoList.appendChild(li);
}
function handleToDoSubmit(event) {
event.preventDefault();
const newToDo = toDoInput.value;
toDoInput.value = "";
toDos.push(newToDo);
paintToDo(newToDo);
saveToDos();
}
toDoForm.addEventListener("submit", handleToDoSubmit);
7.4 Loading To Dos part One
localStorageに格納されている値をparseに変換
そしてforeachに移動します.
todo.jsconst toDoForm = document.getElementById("todo-form");
const toDoInput = toDoForm.querySelector("input");
const toDoList = document.getElementById("todo-list");
const TODOS_KEY = "todos";
const toDos = [];
function saveToDos() { // 저장 중,,
localStorage.setItem(TODOS_KEY, JSON.stringify(toDos)); // 배열을 stringify로 저장해서 배열 형태로
}
function deleteToDo(event) {
const li = event.target.parentElement;
li.remove();
}
function paintToDo(newTodo) {
const li = document.createElement("li");
const span = document.createElement("span");
span.innerText = newTodo;
const button = document.createElement("button");
button.innerText = "❌";
button.addEventListener("click", deleteToDo );
li.appendChild(span);
li.appendChild(button);
toDoList.appendChild(li);
}
function handleToDoSubmit(event) {
event.preventDefault();
const newToDo = toDoInput.value;
toDoInput.value = "";
toDos.push(newToDo);
paintToDo(newToDo);
saveToDos();
}
toDoForm.addEventListener("submit", handleToDoSubmit);
const savedToDos = localStorage.getItem(TODOS_KEY);
if (saveToDos) { // savedToDos !== null
const parsedToDos = JSON.parse(savedToDos);
parsedToDos.forEach((item) => console.log("this is turn of ", item));
}
Reference
この問題について(バニラJSチャレンジDay 11), 我々は、より多くの情報をここで見つけました
https://velog.io/@seulpace/바닐라-JS-챌린지-Day-11-qgpkgbqb
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="css/style.css">
<title>Momentum App</title>
</head>
<body>
<form id="login-form" class="hidden">
<input required maxlength="15" type="text" placeholder="What is your name?" />
<button>Log In</button>
</form>
<h2 id="clock">00:00:00</h2>
<h1 id="greeting" class="hidden"></h1>
<form id="todo-form">
<input type="text" placeholder="Write a To Do and Press Enter" required/>
</form>
<ul id="todo-list"></ul>
<div id="quote">
<span></span>
<span></span>
</div>
<script src="js/greetings.js"></script>
<script src="js/clock.js"></script>
<script src="js/quotes.js"></script>
<script src="js/background.js"></script>
<script src="js/todo.js"></script>
</body>
</html>
// todo-form에서 적으면 javascript에서 todo-list에 추가해주기
const toDoForm = document.getElementById("todo-form");
const toDoInput = toDoForm.querySelector("input");
const toDoList = document.getElementById("todo-list");
function handleToDoSubmit(event) {
event.preventDefault();
const newToDo = toDoInput.value;
toDoInput.value = "";
}
toDoForm.addEventListener("submit", handleToDoSubmit);
私たちが書いた2つのテキストをspan、liに入れ、ulに入れます.
const toDoForm = document.getElementById("todo-form");
const toDoInput = toDoForm.querySelector("input");
const toDoList = document.getElementById("todo-list");
function paintToDo(newTodo) {
// toDo를 그리는 역할
const li = document.createElement("li");
const span = document.createElement("span");
// li 안에 span을 넣을 거래
li.appendChild(span);
span.innerText = newTodo;
toDoList.appendChild(li);
}
function handleToDoSubmit(event) {
event.preventDefault();
const newToDo = toDoInput.value;
toDoInput.value = "";
paintToDo(newToDo);
}
toDoForm.addEventListener("submit", handleToDoSubmit);
7.2 Deleting To Dos
event.target.parentElementを使用してxという名前のコンテンツをボタンに入れ、押したときに消えます(何が押されたかを知るために)
todo.jsconst toDoForm = document.getElementById("todo-form");
const toDoInput = toDoForm.querySelector("input");
const toDoList = document.getElementById("todo-list");
function deleteToDo(event) { // target: 클릭된 element
const li = event.target.parentElement;
li.remove();
}
function paintToDo(newTodo) {
const li = document.createElement("li");
const span = document.createElement("span");
span.innerText = newTodo;
const button = document.createElement("button");
button.innerText = "❌";
button.addEventListener("click", deleteToDo);
li.appendChild(span);
li.appendChild(button);
toDoList.appendChild(li);
}
function handleToDoSubmit(event) {
event.preventDefault();
const newToDo = toDoInput.value;
toDoInput.value = "";
paintToDo(newToDo);
}
toDoForm.addEventListener("submit", handleToDoSubmit);
7.3 Saving To Dos
localStorageに保存
保存時はa、b、cではなくtoStringとして保存
todo.jsconst toDoForm = document.getElementById("todo-form");
const toDoInput = toDoForm.querySelector("input");
const toDoList = document.getElementById("todo-list");
const toDos = [];
function saveToDos() { // 저장 중,,
localStorage.setItem("todos", JSON.stringify(toDos)); // 배열을 stringify로 저장해서 배열 형태로
}
function deleteToDo(event) {
const li = event.target.parentElement;
li.remove();
}
function paintToDo(newTodo) {
const li = document.createElement("li");
const span = document.createElement("span");
span.innerText = newTodo;
const button = document.createElement("button");
button.innerText = "❌";
button.addEventListener("click", deleteToDo);
li.appendChild(span);
li.appendChild(button);
toDoList.appendChild(li);
}
function handleToDoSubmit(event) {
event.preventDefault();
const newToDo = toDoInput.value;
toDoInput.value = "";
toDos.push(newToDo);
paintToDo(newToDo);
saveToDos();
}
toDoForm.addEventListener("submit", handleToDoSubmit);
7.4 Loading To Dos part One
localStorageに格納されている値をparseに変換
そしてforeachに移動します.
todo.jsconst toDoForm = document.getElementById("todo-form");
const toDoInput = toDoForm.querySelector("input");
const toDoList = document.getElementById("todo-list");
const TODOS_KEY = "todos";
const toDos = [];
function saveToDos() { // 저장 중,,
localStorage.setItem(TODOS_KEY, JSON.stringify(toDos)); // 배열을 stringify로 저장해서 배열 형태로
}
function deleteToDo(event) {
const li = event.target.parentElement;
li.remove();
}
function paintToDo(newTodo) {
const li = document.createElement("li");
const span = document.createElement("span");
span.innerText = newTodo;
const button = document.createElement("button");
button.innerText = "❌";
button.addEventListener("click", deleteToDo );
li.appendChild(span);
li.appendChild(button);
toDoList.appendChild(li);
}
function handleToDoSubmit(event) {
event.preventDefault();
const newToDo = toDoInput.value;
toDoInput.value = "";
toDos.push(newToDo);
paintToDo(newToDo);
saveToDos();
}
toDoForm.addEventListener("submit", handleToDoSubmit);
const savedToDos = localStorage.getItem(TODOS_KEY);
if (saveToDos) { // savedToDos !== null
const parsedToDos = JSON.parse(savedToDos);
parsedToDos.forEach((item) => console.log("this is turn of ", item));
}
Reference
この問題について(バニラJSチャレンジDay 11), 我々は、より多くの情報をここで見つけました
https://velog.io/@seulpace/바닐라-JS-챌린지-Day-11-qgpkgbqb
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
const toDoForm = document.getElementById("todo-form");
const toDoInput = toDoForm.querySelector("input");
const toDoList = document.getElementById("todo-list");
function deleteToDo(event) { // target: 클릭된 element
const li = event.target.parentElement;
li.remove();
}
function paintToDo(newTodo) {
const li = document.createElement("li");
const span = document.createElement("span");
span.innerText = newTodo;
const button = document.createElement("button");
button.innerText = "❌";
button.addEventListener("click", deleteToDo);
li.appendChild(span);
li.appendChild(button);
toDoList.appendChild(li);
}
function handleToDoSubmit(event) {
event.preventDefault();
const newToDo = toDoInput.value;
toDoInput.value = "";
paintToDo(newToDo);
}
toDoForm.addEventListener("submit", handleToDoSubmit);
localStorageに保存
保存時はa、b、cではなくtoStringとして保存
todo.js
const toDoForm = document.getElementById("todo-form");
const toDoInput = toDoForm.querySelector("input");
const toDoList = document.getElementById("todo-list");
const toDos = [];
function saveToDos() { // 저장 중,,
localStorage.setItem("todos", JSON.stringify(toDos)); // 배열을 stringify로 저장해서 배열 형태로
}
function deleteToDo(event) {
const li = event.target.parentElement;
li.remove();
}
function paintToDo(newTodo) {
const li = document.createElement("li");
const span = document.createElement("span");
span.innerText = newTodo;
const button = document.createElement("button");
button.innerText = "❌";
button.addEventListener("click", deleteToDo);
li.appendChild(span);
li.appendChild(button);
toDoList.appendChild(li);
}
function handleToDoSubmit(event) {
event.preventDefault();
const newToDo = toDoInput.value;
toDoInput.value = "";
toDos.push(newToDo);
paintToDo(newToDo);
saveToDos();
}
toDoForm.addEventListener("submit", handleToDoSubmit);
7.4 Loading To Dos part One
localStorageに格納されている値をparseに変換
そしてforeachに移動します.
todo.jsconst toDoForm = document.getElementById("todo-form");
const toDoInput = toDoForm.querySelector("input");
const toDoList = document.getElementById("todo-list");
const TODOS_KEY = "todos";
const toDos = [];
function saveToDos() { // 저장 중,,
localStorage.setItem(TODOS_KEY, JSON.stringify(toDos)); // 배열을 stringify로 저장해서 배열 형태로
}
function deleteToDo(event) {
const li = event.target.parentElement;
li.remove();
}
function paintToDo(newTodo) {
const li = document.createElement("li");
const span = document.createElement("span");
span.innerText = newTodo;
const button = document.createElement("button");
button.innerText = "❌";
button.addEventListener("click", deleteToDo );
li.appendChild(span);
li.appendChild(button);
toDoList.appendChild(li);
}
function handleToDoSubmit(event) {
event.preventDefault();
const newToDo = toDoInput.value;
toDoInput.value = "";
toDos.push(newToDo);
paintToDo(newToDo);
saveToDos();
}
toDoForm.addEventListener("submit", handleToDoSubmit);
const savedToDos = localStorage.getItem(TODOS_KEY);
if (saveToDos) { // savedToDos !== null
const parsedToDos = JSON.parse(savedToDos);
parsedToDos.forEach((item) => console.log("this is turn of ", item));
}
Reference
この問題について(バニラJSチャレンジDay 11), 我々は、より多くの情報をここで見つけました
https://velog.io/@seulpace/바닐라-JS-챌린지-Day-11-qgpkgbqb
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
const toDoForm = document.getElementById("todo-form");
const toDoInput = toDoForm.querySelector("input");
const toDoList = document.getElementById("todo-list");
const TODOS_KEY = "todos";
const toDos = [];
function saveToDos() { // 저장 중,,
localStorage.setItem(TODOS_KEY, JSON.stringify(toDos)); // 배열을 stringify로 저장해서 배열 형태로
}
function deleteToDo(event) {
const li = event.target.parentElement;
li.remove();
}
function paintToDo(newTodo) {
const li = document.createElement("li");
const span = document.createElement("span");
span.innerText = newTodo;
const button = document.createElement("button");
button.innerText = "❌";
button.addEventListener("click", deleteToDo );
li.appendChild(span);
li.appendChild(button);
toDoList.appendChild(li);
}
function handleToDoSubmit(event) {
event.preventDefault();
const newToDo = toDoInput.value;
toDoInput.value = "";
toDos.push(newToDo);
paintToDo(newToDo);
saveToDos();
}
toDoForm.addEventListener("submit", handleToDoSubmit);
const savedToDos = localStorage.getItem(TODOS_KEY);
if (saveToDos) { // savedToDos !== null
const parsedToDos = JSON.parse(savedToDos);
parsedToDos.forEach((item) => console.log("this is turn of ", item));
}
Reference
この問題について(バニラJSチャレンジDay 11), 我々は、より多くの情報をここで見つけました https://velog.io/@seulpace/바닐라-JS-챌린지-Day-11-qgpkgbqbテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol