본문 바로가기

HTML, CSS, Javascript

[Javscript] 태그 요소 가져오는 방법

document.getElementsByName(name) :

body 내의 특정 name 속성을 가진 모든 요소들을 찾을 수 있다.

 

📦 반환값 :

  • NodeList(정확히는 NodeListOf<HTMLElement>)를 반환한다.
  • 이 NodeList는 배열처럼 생겼지만 진짜 배열은 아니며, 반복은 가능하지만 .forEach나 length, 인덱스 접근만 지원한다.
  • name 속성을 가진 모든 요소들을 포함한다.
더보기
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>practice</title>
  </head>
  <body>
    <div name="element"></div>
    <div name="element"></div>
    <div name="element"></div>
  </body>
  <script>
    const div = document.getElementsByName("element");

    console.log(div);
    div.forEach((a) => {
      console.log(a);
    });
  </script>
</html>

 

콘솔값

 

 


 

 

document.getElementById(ID) :

HTML 문서 안에서 특정 id(고유한 값) 값을 가진 요소 하나를 가져온다.

 

📦 반환값 :

  • 해당 id 값을 가진 하나의 요소(Element) 를 반환한다.
  • 만약 해당 id를 가진 요소가 없다면 null을 반환한다.
  • id는 문서 내에서 유일해야 하므로, 이 메서드는 항상 단 하나의 요소만 반환한다.
더보기
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>practice</title>
  </head>
  <body>
    <div id="element">1</div>
    <div id="element">2</div>
    <div id="element">3</div>
  </body>
  <script>
    const div = document.getElementById("element");

    console.log(div);
  </script>
</html>

고유한 값을 가져야 하지만, 맨 위의 값을 가져온다는 것을 알려주기 위해 여러 개의 동일한 ID를 넣었다.

 

콘솔값

 

 


 

 

document.getElementsByClassName(class name) :

HTML 요소의 class 속성을 기준으로 요소들을 가져온다.

 

📦 반환값 :

  • HTMLCollection (유사 배열 객체) 반환한다.
  • 조건에 맞는 모든 요소들을 반환한다.
  • 실시간 컬렉션이라 DOM이 바뀌면 내용도 바뀐다.
  • 배열처럼 length, 인덱스로 접근 가능하지만, 진짜 배열은 아니다. (map, forEach는 직접 못 쓴다.)
더보기
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>practice</title>
  </head>
  <body>
    <div class="element"></div>
    <div class="element"></div>
    <div class="element"></div>
  </body>
  <script>
    const div = document.getElementsByClassName("element");

    console.log(div);
    console.log(div[0]);
    console.log(div[1]);
    console.log(div[2]);
  </script>
</html>

 

 

콘솔값

 

 


 

 

document.querySelector(css 선택자) :

주어진 CSS 선택자 에 일치하는 문서 내 첫 번째 요소를 반환한다.

 

📦 반환값 :

  • 가장 처음 매칭되는 요소 하나만 반환한다. (Element)
  • 매칭되는 게 없다면 null을 반환한다.
더보기
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>practice</title>
  </head>
  <body>
    <div id="element"></div>
    <div class="element"></div>
    <div class="element">
      <div></div>
      <input type="text" />
    </div>
  </body>
  <script>
    const id = document.querySelector("#element");
    const class1 = document.querySelector(".element");
    const class2 = document.querySelector(".element > div");
    const class3 = document.querySelector(".element input[type='text']");

    console.log(id);
    console.log(class1);
    console.log(class2);
    console.log(class3);
  </script>
</html>

CSS 선택자

  • # : id
  • . : class
  • > : 바로 아래 자 요소
  • input[type='text'] : type이 text인 input

 

콘솔값

 

 


 

 

document.querySelectorAll(css 선택자) :

CSS 선택자 문법을 사용해, 문서 내에서 일치하는 모든 요소들을 NodeList 형태로 반환한다.

 

📦 반환값 :

  • NodeList: 배열처럼 인덱스로 접근 가능 ([0], [1].. 등)
  • length 속성 있다.
  • forEach 사용 가능 (실제로는 배열은 아니다)
  • 정적인 리스트이라 DOM 변경되어도 자동으로 바뀌지 않는다.
더보기
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>practice</title>
  </head>
  <body>
    <div class="element">1</div>
    <div class="element">2</div>
    <div class="element">3</div>
    <div class="element">4</div>
  </body>
  <script>
    const element = document.querySelectorAll(".element");

    console.log(element);
    element.forEach((a) => {
      console.log(a);
    });
  </script>
</html>

선택자는 querySelector와 동일하다.

 

 

콘솔값