동백 // 노마드 코더 바닐라JS: HTML과 JS

2021. 11. 2. 18:21강의 정리/노마드코더( 바닐라 JS 강의 )

반응형

출처 : https://nomadcoders.co/

 

The Document Object

 

핵심 : Js가 어떻게 브라우저를 움직이게 하는지

 

. Js를 사용하는 이유는 HTML과 상호작용하기 위해서이다.

HTML의 Element들을 JS를 통해 변경하고, 읽을 수 있다.

 

. document는 브라우저에 이미 존재하는 object이다.

HTML을 가르키는 객체이다.

나의 웹사이트를 가리킨다.

document는 JS의 관점으로 HTML을 가르키는 객체이다.

 

 

! 우리는 HTML 코드를 JS 관점에서 볼 수 있다.

이는 HTML에 있는 것들을 JS로 가져다 쓸 수 있다는 것(변경, 수정, 추가)을 의미한다.

JS에서 Html을 변경할 수 있다는 것을 보여줌

 

 

 


 

HTML in JS

 

 

핵심 : JS에서 HTML의 특정한 무언가를 가져오는 방법

 

. 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">
    <!-- css 연결 -->
    <link rel="stylesheet" href="style.css">
    <title>Momentum</title>
</head>
<body>
    <h1 id="title">Grab me!</h1> ! 추가된 문장
    
    <!-- 자바 스크립트 연결 -->
    <script src="app.js"></script>
</body>
</html>

 

. id를 통해 js로 가져오는 방법

document.getElementByID("ID값")

같은 방법

const title = document.getElementById("title");
console.dir(title);

id값을 통해 js로 html을 가져옴.

 

 

! 단순히 HTML에서 가져오는 것이 중요한 것이 아니라, 그걸 JS에서 하고 있다는게 중요한 점이다.

 

 

. JS를 통해서 HTML element 변경하기

. 이러한 것들이 가능한 이유는 HTML element에 id를 추가했고, element를 js로 가져온 덕분이다.

 

. HTML은 그 자체로는 크게 쓸모가 없다. 그러기에 우리는 이 HTML을 JS로 읽어 올 수 있어야한다. 

 

. 가장 중요한 개념은 HTML에서 항목들을 가지고 와서, JS를 통해 항목들을 변경하는 것이다.

 

 

 


 

Searching For Elements

 

 

핵심 : Class를 사용하여 HTML element들을 검색하는 방법

 

. 대부분의 경우에서는 id 보다는 className을 사용하거나 둘 다 사용함.

 

. className 사용하여 HTML elements에 접근하는 방법

 

. 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">
    <!-- css 연결 -->
    <link rel="stylesheet" href="style.css">
    <title>Momentum</title>
</head>
<body>
    <h1 class="hello">Grab me!</h1> ! 사용할 elements
    <!-- 자바 스크립트 연결 -->
    <script src="app.js"></script>
</body>
</html>

 

. app.js

const hellos = document.getElementsByClassName("hello");

 

. 당연하지만 HTML className과 JS ()안에 className이 같아야 함.

 

. 대부분 elements들의 각자 다른 className을 사용할 것이다.

 

 

. tag Name을 가지고 element들을 가지고 오는 방법 // h1의 태그를 가지고 있는 element들을 가져옴

그러나 이러한 방법들을 element가 아닌 array를 반환하기 때문에 아래와 같은 방법들을 주로 사용한다!

const hellos = document.getElementsByTagName("h1");

 

 

 

 

 

 

. element를 가지고 오는 좋은 방법들을 querySelector와 querySelectorAll이다.

querySelector는 element를 CSS 방식으로 검색할 수 있다.

 

이는 hello란 class 내부에 있는 h1을 가지고 올 수 있다는 것을 의미한다.

const hellos = document.querySelector(".hello h1");


ex ) const hellos = document.querySelector("div h1"); 도 가능하다.

 

. querySelector를 사용할 때, 아래 코드와 같이 hello class 안에 h1이 많을 수도 있음. 

    <div class="hello">
        <h1>Grab me!</h1>
    </div>
    <div class="hello">
        <h1>Grab me!</h1>
    </div>
    <div class="hello">
        <h1>Grab me!</h1>
    </div>

이때 querySelector는 첫번째 것만 가져옴.

 

 

. 3개의 element들을 모두 가져오고 싶으면 아래 코드와 같이 하면 됌.

const hellos = document.querySelectorAll(".hello h1");

 

. id 값을 통해 찾고 싶다면 아래 코드와 같이 하면 됌

const hellos = document.querySelector("#hello");

 

 

 

 

요약

1. 가장 중요한 개념은 HTML에서 항목들을 가지고 와서, JS를 통해 항목들을 변경하는 것이다.

2. 대부분의 경우에서는 id 보다는 className을 사용하거나 둘 다 사용함.

3. element를 가지고 오는 좋은 방법들을 querySelector와 querySelectorAll이다.

4. querySelector는 element를 CSS 방식으로 검색할 수 있다.

 

반응형