프라이D
프라이Develog(❁´◡`❁)
프라이D
전체 방문자
오늘
어제
  • ALL (378)
    • TDD, Cleancode with JavaScr.. (5)
    • 프로젝트 (32)
      • work (3)
      • 직접 만드는 기술 블로그 (2)
      • 데일리 옥션 (19)
      • 모락모락 (8)
    • Computer Science (1)
    • Algorithm & 자료구조 (94)
      • 알고리즘 w.JavaScript (53)
      • 자료구조 (5)
      • (인프런) 자바스크립트 알고리즘 문제풀이 (34)
    • JavaScript (45)
      • JavaScript (41)
      • 모던 자바스크립트 Deep Dive (4)
    • WEB (13)
    • 회고 (12)
    • TIL (109)
    • WIL (7)
    • Stacks (20)
      • React.js (6)
      • Next.js (1)
      • Redux (3)
      • Node.js (2)
      • GIT (2)
      • SAP (1)
    • 15일 메이킹 프로젝트 (15)
    • 이전 기록 (14)
    • ETC. (5)
    • ---------------2021 (6)
      • 내일배움단-웹개발 5주 (2)
      • 정보처리기사 (4)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • 자바스크립트
  • 자바스크립트비트마스크
  • nomadcoders
  • 코딩프로젝트
  • vanilaJS
  • 내일배움카드
  • 모던자바스크립트딥다이브
  • JavaScript
  • Til
  • nomadcoder
  • MySQL
  • 2023 인프콘 후기
  • 비트마스크
  • 내일배움단
  • 국비지원
  • 스파르타코딩클럽
  • 알고리즘
  • 코드스테이츠
  • 투포인터알고리즘
  • 자바스크립트알고리즘

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
프라이D

프라이Develog(❁´◡`❁)

[JS]2021-1107 localStorage - CSS,HTML 조작
JavaScript/JavaScript

[JS]2021-1107 localStorage - CSS,HTML 조작

2021. 11. 7. 22:32

nomadcoders VanilaJS #4.3~7 강의를 정리한 내용입니다.

JavaScript로 CSS 조작하기 - classList 활용

<form id="login-form" class="hidden">
        <input required maxlength="15" type="text" placeholder="What is your name?"/>
        <button>Log in</button>
    </form>
    <h1 id="greeting" class="hidden"></h1>

사용자가 이름을 입력하고 버튼을 클릭해 submit을 하는 동시에, 로그인 폼이 사라지고 인사말이 뜨도록 해야 한다.

form과 h1 모두 hidden이라는 클래스를 주고, 아래와 같이 css를 작성해 주었다.

.hidden {
  display: none;
}

classList를 사용해 html의 class를 추가, 삭제, 변경할 수 있다.

반복해서 사용되는 string의 경우, 철자 오류 방지를 위해 변수로 선언해주는 것이 바람직하다.

const HIDDEN_CLASSNAME ="hidden";

function onLoginSubmit(event) {
    event.preventDefault();
    const username = loginInput.value;
    localStorage.setItem("username", username);
    
    loginForm.classList.add(HIDDEN_CLASSNAME);	
}

JavaScript로 HTML 조작하기 -. innerText 활용

function paintGreetings(username) { //인삿말을 띄워주는 함수
    greeting.innerText = `Hello, ${username}`; //h1안에 사용자가 입력한 이름을 넣어 인삿말 string을 만든다.
    greeting.classList.remove(HIDDEN_CLASSNAME); //인삿말이 만들어진 h1의 hidden class를 지워, 화면에 뜨도록 한다.
}

submit 이벤트가 발생하면, paintGreetings라는 함수가 실행되는데, 이 함수는 username을 인자로 받아

화면에 Hello, '사용자 이름'- 형태의 문장을 만든다. 동시에 hidden class를 지워 이 내용에 화면에 출력되도록 한다.

 

변수를 사용해 화면에 띄워줄 string을 만드는 것은 두 가지 방법이 있다.
1. "Hello " + username
2. `Hello ${username}` → ${} 안에는 변수명을 넣어주고, 모든 내용을 `` 백틱으로 묶어준다.

${variableName} : 공식문서에서 찾아보니 이러한 방식을  Template literals라고 부른다고 한다.
따옴표를 쓴 string과 변수를 + 로 묶어주는 기존 방식을 단순화시킨 방식인 것 같고,
제이쿼리와는 연관이 없는 자바스크립트 문법이라고 한다.

 

function onLoginSubmit(event) { //form에 추가된 submit 이벤트 리스너가 실행시키는 함수
    event.preventDefault(); // submit시 새로고침되는 기본 행동을 억제한다.
    const username = loginInput.value; //username 변수에 사용자가 input에 입력한 value를 담고
    localStorage.setItem("username", username); //이를 브라우저의 로컬 스토리지에 저장한다.
    loginForm.classList.add(HIDDEN_CLASSNAME); //정보입력이 완료된 로그인 폼을 hidden시키고,
    
    paintGreetings(username); //인삿말을 띄워주는 함수를 실행한다.
}

loginForm.addEventListener("submit",onLoginSubmit); //submit 이벤트가 발생하면 함수를 실행시키는 이벤트리스너

paintGrettings함수의 인자 값인 username은 앞서 선언해 주었던 input의 value 값이다.

 

저작자표시 (새창열림)

'JavaScript > JavaScript' 카테고리의 다른 글

[JS]2021-1114 Date - 자바스크립트로 현재 시간 불러오기/ setInterval(),setTimeout() - 타이머 함수  (0) 2021.11.14
[JS]2021-1107 localStorage - If 문으로 정보 저장 여부 확인  (0) 2021.11.07
[JS]2021-1107 localStorage로 사용자 정보 저장  (0) 2021.11.07
[JS]2021-1104 form태그, event.preventDefault()  (0) 2021.11.04
[JS]2021-1016 (노마드코더 VanilaJS #2.9~2.16)  (0) 2021.10.20
    'JavaScript/JavaScript' 카테고리의 다른 글
    • [JS]2021-1114 Date - 자바스크립트로 현재 시간 불러오기/ setInterval(),setTimeout() - 타이머 함수
    • [JS]2021-1107 localStorage - If 문으로 정보 저장 여부 확인
    • [JS]2021-1107 localStorage로 사용자 정보 저장
    • [JS]2021-1104 form태그, event.preventDefault()
    프라이D
    프라이D
    틀린내용 정정 및 개선사항은 언제든지 댓글 달아주세요 :D

    티스토리툴바