.active로 쉽게 색깔 바꾸기html
<body>
<div class="hello">
<h1>Grab me!</h1>
</div>
</body>
app.js
const h1 = document.querySelector(".hello h1");
function handleTitleClick(){
h1.className = "active";
}
h1.onclick = handleTitleClick;
css
.active {
color: tomato;
}
app.js 만 아래로 수정하면 빨강<->파랑 번갈아 가능(토글처럼)
function handleTitleClick(){
if(h1.className === "active"){
h1.className = "";
} else {
h1.className = "active";
}
}
- "active" string이 계속 쓰이면 에러의 위험이 있다.
일단 "clicked"로 수정 또는- const clickedClass = "clicked"로 만들어준다.
classListsexy-font 유지한 상태로 컬러 class 추가 및 삭제하기
<body>
<div class="hello">
<h1 class="sexy-font">Grab me!</h1>
</div>
</body>
app.js
function handleTitleClick(){
const clickedClass = "clicked"
// if(h1.className === clickedClass){
if(h1.classList.contains(clickedClass)){
h1.classList.remove(clickedClass)
} else {
h1.classList.add(clickedClass)
}
}
기존
if(h1.className === clickedClass)
코드를
if(h1.classList.contains(clickedClass)
로 수정해줌으로써
기존 코드는 유지한 상태로 class 추가 및 제거 가능
toggle 사용하기function handleTitleClick(){
h1.classList.toggle("clicked");
}
기존
if(h1.classList.contains(clickedClass)){ h1.classList.remove(clickedClass) } else { h1.classList.add(clickedClass) }toggle
h1.classList.toggle("clicked");한줄로 정리 완료
const loginForm = document.getElementById("login-form");
const loginInput = loginForm.querySelector("input");
const loginButton = loginForm.querySelector("button");
위 코드와 아래 코드는 동일한 코드이다.
const loginInput = document.querySelector("#login-form input");
const loginButton = document.querySelector("#login-form button");
<form>
<input
required
maxlength="15"
type="text"
placeholder="What is your name?"
/>
</form>
이거랑 > 대신 form으로 감싸야함
but
form으로 감싸면 클릭(로그인, submit) 할때마다
인터넷 창이 refresh(새로고침) 된다.
if(username === ""){
alert("Please Write your name");
} else if(username.length > 15){
alert("Your name is too long");
}
같은 코드
form을 사용할 때 기본적으로 submit 이벤트가 발생하면 페이지가 새로고침(refresh)됩니다. 보통 이 새로고침을 막기 위해 event.preventDefault()를 사용하는 경우가 많죠. 하지만 실제로 새로고침이 필요한 상황도 있습니다.
몇 가지 예시
이런 상황에서는 폼 제출 후 페이지를 새로고침하면서 결과를 보여주는 방식이 자연스러울 수 있습니다.
이 외에도 form 제출 후 새로고침이 필요한 특정 요구사항은 프로젝트의 특성이나 비즈니스 로직에 따라 다를 수 있습니다.
greeting.innerHTML = "Hello " + username; greeting.innerHTML = `Hello ${username}`;
localStorage.setItem("", ); // 저장하기
localStorage.getItem("", ); // 가져오기
localStorage.removeItem("", ); // 지우기