JS 제어 대상 찾기
1. getElmentById()
-
Document.getElementById() 메서드는 주어진 문자열과 일치하는 [
id](https://developer.mozilla.org/ko/docs/Web/API/Element/id) 속성을 가진 요소를 찾고, 이를 나타내는 [
Element`](https://developer.mozilla.org/ko/docs/Web/API/Element) 객체를 반환한다. ID는 문서 내에서 유일해야 하기 때문에 특정 요소를 빠르게 찾을 때 유용하다.function changeColor(newColor) { const elem = document.getElementById('para'); elem.style.color = newColor; }
2. getElementsByClassName()
-
Element
의 메소드getElementsByClassName() 는 주어진 클래스를 가진 모든 자식 엘리먼트의 실시간 [
HTMLCollection`](https://developer.mozilla.org/ko/docs/Web/API/HTMLCollection) 을 반환한다. -
id 속성을 사용하여 접근하는 getElementById() 와 달리 getElementsByClassName() 은 Elements 이므로 컬렉션 객체를 반환한다.
-
따라서 여러 개중 첫 번째에 접근하기 위해 [0]과 같은 배열의 요소애 접근하는 것처럼 하나를 특정해 줘야 한다.
const myFirstClass = document.getElementsByClassName('myClass')[0];
<!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" /> <script src="./main.js" defer></script> <title>Document</title> </head> <body> <main> <section> <article id="myClass">여기에 접근하고 싶습니다</article> <article id="myClass">여기가 아닙니다</article> <article class="myClass">여기가 아닙니다</article> </section> </main> <footer> <small id="contactEmail">wecode@myemail.com</small> </footer> </body> </html>
const myFirstClass_0 = document.getElementsByClassName("myClass")[0]; const myFirstClass_1 = document.getElementsByClassName("myClass")[1]; const myFirstClass = document.getElementsByClassName("myClass"); const contactEmail = document.getElementById("contactEmail"); console.log(myFirstClass_0.innerHTML); // "여기에 접근하고 싶습니다" //태그 전체를 가져온다. console.log(myFirstClass_1); // <article class="myClass">여기가 아닙니다</article> console.log(myFirstClass) // HTMLCollection(3) [article.myClass, article.myClass, article.myClass] 0: article.myClass 1: article.myClass 2: article.myClass length: 3 [[Prototype]]: HTMLCollection contactEmail.style.color = "green"; // 글자색을 초록색으로 변경
3. getElementsByTagName()
-
Element
의 메소드getElementsByClassName() 는 주어진 클래스를 가진 모든 자식 엘리먼트의 실시간 [
HTMLCollection`](https://developer.mozilla.org/ko/docs/Web/API/HTMLCollection) 을 반환한다. -
이 함수는 태그의 있는 div, li, p 와 같은 특정 태그명을 가지고 있는 element 의 집합을 가져오는 함수이다.
-
따라서 반환되는 값은 HTML컬렉션 객체이며 for문 등을 사용하여 element 객체를 사용할수있다.
HTML 태그는 위와 동일하다.
const tag_1 = document.getElementsByTagName("article")[0];
const tag = document.getElementsByTagName("article");
console.log(tag_1); //<article id="myClass">여기에 접근하고 싶습니다</article>
console.log(tag_1.innerHTML); //여기에 접근하고 싶습니다
console.log(tag);
//HTMLCollection(3) [article#myClass, article#myClass, article.myClass, myClass: article#myClass]
0: article#myClass
1: article#myClass
2: article.myClass
myClass: article#myClass
length: 3
[[Prototype]]: HTMLCollection
console.log(tag.innerHTML); //undefined
4. querySelector()
-
Document.querySelector()
는 제공한 선택자 또는 선택자 뭉치와 일치하는 문서 내 첫 번째Element
를 반환합니다. 일치하는 요소가 없으면null
을 반환합니다. -
특정 name,id,class를 제한하지 않고 css선택자를 사용하여 요소를 찾습니다.
const el = document.querySelector(".myclass"); //class const ev = document.querySelector("#class"); //id const ev = document.querySelector("class"); //tag
첫 번째 요소 반환!!!!
5. querySelectorAll()
querySelectorAll() 는 지정된 셀렉터 그룹에 일치하는 다큐먼트의 엘리먼트 리스트를 나타내는 정적(살아 있지 않은) [
NodeList`](https://developer.mozilla.org/ko/docs/Web/API/NodeList) 를 반환합니다.- 반환객체가 nodeList이기에 for문 또는 forEach문을 사용합니다.
//다큐먼트에서 모든 <p> 엘리먼트의 NodeList를 얻으려면
var matches = document.querySelectorAll("p");
//예시
const abc = document.querySelectorAll("article");
const abcd = document.querySelectorAll("article")[0];
console.log(abc);
/*
NodeList(3) [article#myClass, article#myClass, article.myClass]
0: article#myClass
1: article#myClass
2: article.myClass
length: 3
[[Prototype]]: NodeList*/
console.log(abcd); //<article id="myClass">여기에 접근하고 싶습니다</article>
console.log(abcd.innerHTML); //여기에 접근하고 싶습니다
댓글남기기