코딩/JavaScript

querySelector, getElementById, textContent

moodyblues 2021. 12. 20. 12:33

document, 메소드(methods)

Window의 document는 DOM에 진입하기 위한 인터페이스(interface)이다.

브라우저 객체 Window의 document: 지금 브라우저에 렌더링 되고 있는 문서를 의미하는데,
Window의 document 속성을 이용하여 이 문서에 접근이 가능하다.|
Window의 document를 이용하여 웹페이지의 정보를 얻고, 요소(elements)의 변경 등 문서를 조작할 수 있다.

document, 메소드(methods)
document, 메소드(methods)

문서 인터페이스 기능

도큐먼트는 문서(html, xml, svg 등)에 대한 공통의 속성과 메소드를 제공한다.
다양한 API(Application Programming Interface)를 제공한다.
도큐먼트가 제공하는 속성과 메소드는 그 종류가 많다.

요소 선택에 필요한 메소드

대표적인 2가지는 다음과 같다.

  1. document.querySelector
  2. document.getElementById

이 두 메소드로 조작하고 싶은 요소(Element) 객체를 선택할 수 있다.

쿼리 셀렉터 메소드(document.querySelector)

쿼리셀렉터는 선택자를 받아서 선택자와 일치하는 문서 안의 첫 번째 요소를 반환한다.
일치하는 요소만 반환할 수 있으므로, 일치하는 요소가 없으면 '없다(null)'의 데이터를 반환한다.
쿼리 셀렉터에서 인자로 전달되는 선택자는 아래 내용처럼 문자열 타입의 데이터 css 선택자를 요구한다.

//p태그 선택
document.querySelector("p")
//class가 aaa인 요소를 선택
document.querySelector(".aaa")
//ID가 bbb인 요소를 선택
document.querySelector("#bbb")

* query: (명) 질문, (동) 질문하다

겟 엘리먼트 바이 ID 메소드(document.getElementById)

id를 인자로 전달받아 전달받은 선택자와 일치하는 요소를 반환한다.
일치하는 요소가 없으면 '없다(null)'의 데이터를 반환한다.
인자로 전달되는 선택자는 아래 내용처럼 문자열 타입의 'ID'를 요구한다.

//ID가 aaa인 요소를 선택
document.getElementById("aaa")
//ID가 img인 요소를 선택
document.getElementById("img")

쿼리 셀렉터와 겟 엘리먼트 바이 아이디의 차이점과 공통점

구분 쿼리 셀렉터 메소드(querySelector) 겟 엘리먼트 바이ID 메소드(getElementById)
차이점 css 선택자 입력 기호 없이 아이디 입력
그러므로 id가 있는 요소에만 사용이 가능하다.
공통점 ♤ 요소를 찾아서 반환해 준다
♤ 반환된 요소는 dom 본 객체이다 = 조작할 수 있는 대상

TextContent 속성

텍스트 콘텐츠 속성은 해당 노드가 포함하고 있는 텍스트 콘텐츠를 표현하는 속성이다.
(텍스터 콘텐츠를 읽고 변경할 수 있다.)

아래 문서가 그 아래 그림처럼 랜더링 되는 이유:  DOM이 있기 때문에 가능함

!DOCTYPE html>
<html lang="en">
    <head>        
        <meta charset="UTF-8">        
        <title>Document</title>        
    </head>
    <body>
        <h1>제목1입니다</h1>
        <p>문단입니다</p>
        <p id=text>id 문단입니다</p>       
        <p class=img>클래스 문단입니다</p>
        <script src="3.js"></script>    
    </body>
    </html>    
</html>

브라우저 출력 내용
브라우저 출력 내용

(예시 1) 쿼리 셀렉터(querySelector)

입력 내용

console.log(document.querySelector("h1"))
console.log(document.querySelector("p"))
console.log(document.querySelector("#text"))
console.log(document.querySelector(".img"))

출력 결과

querySelector 출력 결과
querySelector 출력 결과

쿼리 셀렉터를 이용하면 요소를 선택한다.
유효한 css선택자를 넣어주면 그 선택자와 일치하는 요소를 찾아준다.
잘못 넣으면 null(없음)이 반환된다.
자바스크립트에서는 이 요소(elements)들을 하나의 객체로 조작하는 것이 가능하다.

(예시 2) 겟 엘리먼트 바이 아이디(getElementById)

쿼리 셀렉터처럼 요소를 선택해 서 반환해준다.
쿼리 셀렉터와 차이점은 쿼리 셀렉터에는 css 선택자를 입력해야 하고,
겟 엘리먼트 바이 아이디는 아이디가 있는 요소만 사용이 가능하다는 점이다.

입력 내용

아래에서 text 앞에 #은 붙이면 안 된다.

console.log(document.getElementById("h1"))
console.log(document.getElementById("p"))
console.log(document.getElementById("text"))
console.log(document.getElementById("img"))

콘솔 출력 결과

getElementById 반환 결과
getElementById 반환 결과

ID가 있는 것만 정상 출력되는 것을 확인할 수 있다.

반환 데이터 관리

반환된 데이터에 이름을 부여할 수 있다.
이름을 부여할 때 변수나 상수를 사용한다.

const h1 = document.querySelector("h1")
const p = document.getElementById("text")

이렇게 하면, h1과 p라는 이름은 태그들에 접근할 수 있는 이름이 된다.

DOM 객체에서 Text 속성을 보고자 할 때 아래처럼 하면 된다.

const h1 = document.querySelector("h1")
const p = document.getElementById("text")

console.log(h1.textContent)

그러면 h1의 텍스트 컨텐츠가 반환되는 것을 확인할 수 있다.

h1의 텍스트 컨텐츠가 반환
h1의 텍스트 컨텐츠가 반환

텍스트 콘텐츠(textContent) 변경하기

텍스트 콘텐츠는 요소 안에 쓰여 있는 텍스트를 반환해 주는 속성이며, 
포함하고 있는 텍스트를 읽을 수 있고, 변경할 수 있다

읽을 때는 속성 이름만 써 주면 되고,
변경할 때는 변수처럼 속성의 내용을 변경해 주면 된다

따옴표를 사용한다. (텍스트 콘텐츠 문자열 형태의 데이터)

console.log(h1.textContent)
h1.textContent = "Hello Korea"

 

변경된 텍스트콘텐츠
변경된 텍스트콘텐츠

윈도우의 doument 속성은 하나의 객체로 DOM의 인터페이스이며, document는 문서에 대한 속성과 메소드를 제공한다.

querySelector 메소드는 선택자와 일치하는 문서 내 첫번째 요소를 반환하고, getElementById 메소드는 id와 일치하는 요소를 반환한다. 반환받은 요소들은 자바스크립트 코드로 조작할 수가 있고, 조작방법 중 한 가지는 노드가 포함하고 있는 텍스트 콘텐츠를 표현하는 textContent 속성이다.

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

자바스크립트 조건문  (0) 2021.12.20
자바스크립트 비교연산자  (0) 2021.12.20
DOM이란  (0) 2021.12.20
연산자, 산술연산자, 대입연산자, 복합대입연산자  (0) 2021.12.19
템플릿 리터럴  (0) 2021.12.19