화면 속 요소를 선택하는 방법에는 크게 아래와 같이 4가지가 있습니다.
아이디 이름을 이용하여 선택하는 방법
// special-button 아이디를 가진 요소를 선택하여 `$el` 변수에 대입
const $el = document.getElementById("special-button");
// special-button 아이디를 가진 요소의 텍스트 변경
$el.textContent = "I am a Special Button";
Node vs. HTML Element
https://velog.io/@jplendor/Node-vs.-Element
클래스 이름을 이용하여 선택하는 방법
// item 클래스를 가진 "모든 요소들"을 선택하여 `$listItems` 변수에 대입
const $listItems = document.getElementsByClassName("item");
// container 클래스를 가진 "모든 요소들"을 선택하여 `$container` 변수에 대입
const $container = document.getElementsByClassName("container");
// getElementsByClassName의 결과값은 배열과 유사한 형태이므로 인덱스로 접근하여 사용한다.
$listItems[0].textContent = "List 1";
$listItems[1].textContent = "List 2";
$listItems[2].textContent = "List 3";
// HTML 상에서 해당 클래스를 가진 요소가 단 하나 뿐이더라도,
// getElementsByClassName의 결과값은 배열과 유사한 형태이므로 인덱스로 접근하여 사용한다.
$container[0].style.backgroundColor = "green";
태그 이름을 이용하여 선택하는 방법
// li 태그를 이용한 "모든 요소들"을 선택하여 `$listItems` 변수에 대입
const $listItems = document.getElementsByTagName("li");
// p 태그를 이용한 "모든 요소들"을 선택하여 `$paragraphs` 변수에 대입
const $paragraphs = document.getElementsByTagName("p");
// getElementsByTagName의 결과값은 배열과 유사한 형태이므로 인덱스로 접근하여 사용한다.
$listItems[0].textContent = "List 1";
$listItems[1].textContent = "List 2";
$listItems[2].textContent = "List 3";
// 위치와 상관없이 모든 p 태그를 선택하게 되므로 $paragraphs에는 총 4개의 요소가 선택되고,
// 그 중 첫번째 요소의 배경 색깔을 수정합니다.
$paragraphs[0].style.backgroundColor = "green";
CSS 선택자를 이용하여 선택하는 방법
// CSS 선택자 문법을 이용하여 container라는 클래스 이름을 가진 요소를 선택합니다.
// querySelector라는 함수는 모든 경우에 "하나의 요소"를 반환합니다.
const $container = document.querySelector(".container");
const $button = document.querySelector("#special-button");
// 주어진 CSS 선택자와 일치하는 요소가 여러 개일 경우,
// querySelector 함수는 가장 첫번째 요소를 반환합니다.
const $listItem = document.querySelector(".item");
// querySelectorAll 함수는 주어진 CSS 선택자와 일치하는 "모든 요소들"을 유사 배열의 형태로 반환합니다.
// (요소를 제어하고 싶다면 인덱스 위치를 사용해야 합니다.)
const $paragraphs = document.querySelectorAll("p");
<script>
나 <style>
과 상관없이// h1 요소 만들어서 `heading`이라는 변수에 할당
const heading = document.createElement("h1");
// 방금 생성한 `heading` 요소의 텍스트 설정
heading.textContent = "제목입니당";
// 방금 생성한 `heading` 요소의 스타일 설정
heading.style.fontSize = "50px";
// 방금 생성한 `heading` 요소를 body 태그의 자식으로 추가
document.body.appendChild(heading);