반응형
말랑Cow
IT
말랑Cow
전체 방문자
오늘
어제
  • 분류 전체보기 (165)
    • Linux (33)
    • Windows (6)
    • Network (7)
    • Hardware (10)
    • Zabbix (13)
    • python (9)
    • script (0)
    • docker (16)
    • NAS (1)
    • DB (3)
    • php (33)
    • jQuery (1)
    • 정보보안기사 (0)
    • Ajax (1)
    • Javascript (21)
    • DELL (0)
    • HPE (0)
    • Secui (0)
    • AWS (2)
    • Elastic (0)
    • 보안 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 파이썬
  • ZABBIX
  • 네트워크
  • docker
  • JavaScript
  • 자빅스
  • 도커
  • 리눅스
  • Linux
  • php 객체
  • jQuery
  • php 클래스
  • Shell
  • CentOS
  • 모니터링
  • 서버
  • bash
  • php
  • Python
  • 자바스크립트
hELLO · Designed By 정상우.
말랑Cow
Javascript

7. getElementsByTagName / getElementsByClassName / getElementById

7. getElementsByTagName / getElementsByClassName / getElementById
Javascript

7. getElementsByTagName / getElementsByClassName / getElementById

2021. 9. 8. 00:00
반응형

먼저 document 객체란,

웹페이지 그 자체를 의미하며 웹페이지의 HTML 요소에 접근하기 위해서는 반드시 document 객체로부터 시작해야한다.

 

보통 HTML은 단순 정보를 주기 위함이고, 자바스크립트를 쓰는 이유는 HTML을 제어하기 위함이다.

제어를 하기 위해서는 제어대상을 찾고 그 대상에게 작업을 한다. 

 

웹페이지의 HTML 요소에 접근하기 위해 document 라는 객체를 사용하고 이 객체의 메소드 중 getElementByTagName을 살펴본다.

말 그대로 태그 이름을 통해 엘리먼트를 가져온다 라는 뜻이다.

 

예제 코드를 보면,

<!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">
    <title>Document</title>
</head>
<body>
    <ul>
        <li>HTML</li>
        <li>CSS</li>
        <li>JavaScript</li>
    </ul>

    <script>
        var li = document.getElementsByTagName('li');
        for(var i=0; li.length; i++){
            li[i].style.color='blue';
        }
    </script>
</body>
</html>

ul 태그를 만들고 그 안에 li 태그들을 만들었다.

 

script 안의 내용을 보면,

li 라는 태그에 대한 엘리먼트들의 리턴값을 li 로 넣는다.

 

li 는 유사배열로 하여 <li> 태그의 엘리먼트들의 값들이 배열형식으로 들어간다.

(유사배열이란 완전한 배열은 아니지만 배열의 형태를 띄고있는 것? 이라는 정도로 안다)

 

i=0 부터 li 배열의 length인 3까지로 해서 for문을 돌린다.(i=0, 1, 2)

li 태그들의 엘리먼트들의 style.color가 blue가 된다.

 

페이지를 열어보면 다음과 같다.

 

 

getElementsByClassName 도 위와 동일한 기능이지만 ClassName에 따라 엘리먼트들을 조회하는 것이다.

 

코드로 보는 것이 이해가 빠르다.

<!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">
    <title>Document</title>
</head>
<body>
    <ul>
        <li>HTML</li>
        <li class="sjh">CSS</li>
        <li class="sjh">JavaScript</li>
    </ul>

    <script>
        var li = document.getElementsByClassName('sjh');
        for(var i=0; li.length; i++){
            li[i].style.color='red';
        }
    </script>
</body>
</html>

HTML 에서는 class 라는 이름을 부여하지만, 자바스크립트에서는 ClassName 을 쓴다.

(프로그래밍에서는 class 라는 것이 다른 의미를 갖기 때문)

 

위 코드에서 HTML 요소의 li 태그에 class="sjh" 이라는 클래스이름을 붙혀놓았다.

자바스크립트 부분을 보면 ClassName이 sjh 인 엘리먼트들을 조회하여 리턴된 값을 li에 넣고 위의 ElementsByTagName 과 동일하게 for문을 돌린다.

 

CSS와 JavaScript 라는 부분만 class="sjh" 을 갖고 있기 때문에, 다음과 같이 나타난다.

 

또 하나, 가장 많이쓰는 getElementById 라는 것이 있다.

가장 성능이 좋고, 쓸 수 있다면 위의 2개보다 얘를 쓰는 것이 빠르고 좋다.

위 2개와 다른 특징은 Element's' 이 's' 가 안붙는다는 것이다.

즉, 하나의 값에 대해서만 제어를 한다.

기능은 마찬가지로 ID값에 대한 엘리먼트에 대해 제어를 한다.

 

<!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">
    <title>Document</title>
</head>
<body>
    <ul>
        <li id="sjh">HTML</li>
        <li>CSS</li>
        <li id="sjh">JavaScript</li>
    </ul>

    <script>
        var li = document.getElementById('sjh');
        li.style.color='red';
    </script>
</body>
</html>

HTML과 JavaScript 부분에 id를 부여했다.

앞서 말한대로 getElementById는 하나의 Id 값에 대해서만 작동을 한다.

 

JavaScript 도 id="sjh" 이지만, 제일 처음 나온 HTML 부분만 style.color가 red로 적용되었다.

반응형

'Javascript' 카테고리의 다른 글

9. HTML Element  (0) 2021.09.10
8. jQuery 기본 사용법  (0) 2021.09.09
6. window.open 활용  (0) 2021.09.07
5. window.open  (0) 2021.09.06
4. location 객체  (0) 2021.09.05
    'Javascript' 카테고리의 다른 글
    • 9. HTML Element
    • 8. jQuery 기본 사용법
    • 6. window.open 활용
    • 5. window.open
    말랑Cow
    말랑Cow

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.