여러분은 도구모음의 수많은 도구를 어떠한 요소를 찾아내기위해 사용할 수 있어요
그것들은 수많은 작업 중 정말 멋지게 작동할 것입니다
하지만 모든 것중에서 가장 강력한 도구는
CSS 선택자들을 이용하여 특정한 요소(element)들을 찾는 능력입니다
여러분은 CSS 선택자를 기억하시나요?
기본적으로 어떠한 것을 찾기 위해서는 태그 이름(tag name)을 이용하거나
ID를 이용하거나
class를 이용해야합니다
하지만 수많은 진보된 선택자들이 존재합니다
하위 선택자, 속성 선택자, 클래스와 요소 복합 선택자,
이러한 것들은 여러분이 잊어먹지만 않는다면
지금부터 보게될 CSS 선택자보다 효율적일 것입니다
예를들어 제가 animal이라는 class의 이름을 가지고있는 문단(paragraph)의
요소들에만 특정한 스타일을 지정하기를 원한다고 가정 해봅시다
그러기 위해서는 우선 태그를 그 안에 넣어 주어야하고
그 다음 먼저 'p'를 적고
그리고 한칸을 띄운다음
'.animal'이라고 입력하면 'animal'이라는 class 이름을 가지고있는
모든 요소를 찾는 다는 것을 의미해요
그리고 그것들은 모두 빨강색으로 되라고 해볼게요
멋지네요
지금부터는 똑같은 CSS 선택자를 사용하여 JavaScript에서 특정한 요소들을 찾아볼게요
'document.querySelectorAll()' 메서드를 이용해서 말이죠
그러면 저는 이 줄을 바꿔볼거에요
그리고 CSS 선택자를 따옴표 안에 넣어 문자열(string)로 만든 다음
인수(argument)로서 전달하는 것이 필요합니다
그러면 그 문단은 다시 고양이에 대해서 다루게 될 것입니다
여러분이 함수에 올바른 CSS선택자를 전달했다면
여러분이 루프를 통해서 알아낼 수도 있는
요소들의 콜렉션(collection)이 리턴될 것입니다
지난 시간에 제가 'getElementsByTagName()'은
마치 배열(array)과 매우 닯아 보이는 HTML 콜렉션(collection)을
하나 리턴된다고했던 것을 기억하시나요?
이 메서드는 꺽쇠를 이용하여 자료를 접근한다던지 길이를 잴 수 있다던지 하는
많은 면에서 배열과 비슷한 자료구조인 노드리스트(NodeList)를 리턴합니다
그리고 여러분은 이런 메서드를 사용할때
아마도 이러한 노드리스트와 HTML콜렉션 간의 차이를 마주하게 될 것입니다
하지만 이것들에 대해서 더 배우게 된다면 이것들을 보는것이 반가울 거에요
좋아요 이제 CSS 선택자들을 찾는 어떠한 또다른 메서드가 있고
오로지 하나의 요소만 리턴한다면 즉 여러분의 CSS 선택자가
오로지 하나만을 선택한다는 것을 알고 있다 가정하면
실제로는 이것은 전혀 유용하지 않아요
왜나하면 여러분은 보통 이런 경우에 사용할 수 있는 ID를 가지고 있기 때문이죠
하지만 만일에 경우에 대비해서 이러한 것도 여러분들에게 보여드릴게요
여기서 'getElementById'대신에
'document.querySelector("'를 입력하고
실제 쿼리(query)를 위해서 이것에 단순히 '#'을 추가하여 ID로 만들어줍니다
짜잔~
보시는 것과 같이 이것은 오직 하나만을 선택한다는 것을 빼고는
'querySelectorAll()' 와 매우 비슷합니다
그리고 한 요소만을 리턴할 것으로 예상할 수 있는 몇몇의 CSS 선택자를 넘겨 줄 수 있습니다
그러면 언제 여러분은 이러한 도구들을 사용해야할까요?
첫번째로 제가 여러분에게 보여드렸듯이 수행하기 더 나은 경향이 있습니다
그러므로 저는 가능한한 이것을 사용하기를 추천합니다
하지만 만일 여러분이 보다 복잡한 CSS 선택자를 사용해야만 하는 상황이라면
그때는 이것을 사용할 수 없지만 'querySelectorAll()' 이 좋은 방법이 될거에요
다음 시간에 이러한 것을 사용해보도록 할게요
그러면 이 웹페이지를 손 볼 수 있는 더 많은 방법들을 볼 준비를 하세요