일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- CSS
- javascript
- Eclipse
- CMD
- 자바
- 문자열
- IntelliJ
- table
- ArrayList
- windows
- Java
- list
- 정규식
- Array
- Button
- string
- 배열
- js
- 자바스크립트
- 이클립스
- Maven
- html
- json
- date
- vscode
- 이탈리아
- input
- 인텔리제이
- 테이블
- Visual Studio Code
- Today
- Total
어제 오늘 내일
[Javascript] 선택자, DOM 특정 요소(element) 찾기 본문
Javascript에서 DOM의 특정 요소(element)를 찾는 방법을 정리합니다.
1. getElementById()
2. getElementsByClassName()
3. getElementByTagName()
4. querySelector()
5. querySelectorAll()
1. getElementById()
<div id='div_1'>
Div1입니다.
</div>
<div id='div_2'>
Div2입니다.
</div>
<input type='button'
value='getElementById() - id로 찾기'
onclick='getDiv1()'/>
function getDiv1() {
const div1 = document.getElementById('div_1');
alert(div1.innerText);
}
document.getElementById();
파라미터로 찾으려는 id를 전달하여, 해당 element를 찾을 수 있습니다.
id는 유일한 값이므로, 하나의 element만 리턴합니다.
2. getElementsByClassName()
<div id='div_1' class='my_class'>
Div1입니다.
</div>
<div id='div_2' class='my_class'>
Div2입니다.
</div>
<div id='div_3' class='your_class'>
Div3입니다.
</div>
<input type='button'
value='getElementsByClassName() - class이름으로 찾기'
onclick='getMyClass()'/>
function getMyClass() {
const div_list
= document.getElementsByClassName('my_class');
// class가 'my_class'인 element 개수 출력
const div_list_length = div_list.length;
alert(div_list_length);
// class가 'my_class'인 element 목록 출력
for(let i = 0; i < div_list_length; i++) {
alert(div_list[i].innerText);
}
}
document.getElementsByClassName('my_class');
클래스 이름으로 element를 찾아서,
이 클래스 이름을 가지는 모든 element 목록을 리턴합니다.
이 함수의 이름을 자세히 보면 getElementsByClassName으로
Element's'가 복수 형태인 것은 이 함수가 목록을 리턴하기 때문입니다.
<div id='div_1' class='red blue yellow'>
red blue yellow
</div>
<div id='div_2' class='green blue red'>
green blue red
</div>
<div id='div_3' class='yellow green red'>
yellow green red
</div>
<input type='button'
value='getElementsByClassName() - class이름으로 찾기'
onclick='getMyClass()'/>
function getMyClass() {
const div_list
= document.getElementsByClassName('red blue');
// class가 'my_class'인 element 개수 출력
const div_list_length = div_list.length;
alert(div_list_length);
// class가 'my_class'인 element 목록 출력
for(let i = 0; i < div_list_length; i++) {
alert(div_list[i].innerText);
}
}
document.getElementsByClassName('red blue');
다수의 클래스 이름을 모두 포함하고 있는 element를 찾을 때는
파라미터로 클래스 이름을 스페이스로 구분하여 넘겨줍니다.
위 코드는 클래스 이름에 'red'와 'blue' 모두를 포함하는 element를 찾아줍니다.
3. getElementByTagName()
<div id='div_1' class='my_class'>
Div1입니다.
</div>
<div id='div_2' class='my_class'>
Div2입니다.
</div>
<div id='div_3' class='your_class'>
Div3입니다.
</div>
<input type='button'
value='getElementsByTagName() - Tag Name으로 찾기'
onclick='getElementsByTagNameDiv()'/>
function getElementsByTagNameDiv() {
const div_list
= document.getElementsByTagName('div');
// tag name이 'div'인 element 개수 출력
const div_list_length = div_list.length;
alert(div_list_length);
// tag name이 'div'인 element 목록 출력
for(let i = 0; i < div_list_length; i++) {
alert(div_list[i].innerText);
}
}
document.getElementsByTagName('div);
위 코드는 'div' 태그를 가지는 모든 element 목록을 찾아줍니다.
이 함수 역시, 다수의 element를 리턴하기 때문에
함수명에 복수형의 'elements'가 포함되어 있습니다.
4. querySelector()
DOM에서 원하는 element를 찾기 위해서 querySelector() 를 사용할 수도 있는데,
이 함수는 파라미터로 입력받은 CSS선택자를 사용해서, element를 찾아줍니다.
querySelector() 함수는,
파라미터로 입력받은 CSS 선택자로 찾은 여러개의 element 중 첫번째 element를 리턴합니다.
querySelector() - ID로 찾기
<div id='div_1' class='my_class'>
Div1입니다.
</div>
<div id='div_2' class='my_class'>
Div2입니다.
</div>
<div id='div_3' class='your_class'>
Div3입니다.
</div>
<input type='button'
value='querySelector() - ID로 찾기'
onclick='querySelectorById()'/>
function querySelectorById() {
const div
= document.querySelector('#div_1');
alert(div.innerText);
}
document.querySelector('#div_1');
id이름 앞에 '#'를 붙여서 파라미터로 넘겨줍니다.
위 예제는 id가 'div_1'인 element를 찾아서 리턴합니다.
querySelector() - Class 이름으로 찾기
<div id='div_1' class='my_class'>
Div1입니다.
</div>
<div id='div_2' class='my_class'>
Div2입니다.
</div>
<div id='div_3' class='your_class'>
Div3입니다.
</div>
<input type='button'
value='querySelector() - Class로 찾기'
onclick='querySelectorByClassName()'/>
function querySelectorByClassName() {
const div
= document.querySelector('.my_class');
alert(div.innerText);
}
document.querySelector('.my_class');
클래스 이름으로 element를 찾기위해서
클래스 이름 앞에 '.'을 붙여서 파라미터로 넘겨줍니다.
위 예제는 class가 'my_class'인 element 중 첫번째 element를 리턴합니다.
querySelector() - Tag 이름으로 찾기
<div id='div_1' class='my_class'>
Div1입니다.
</div>
<div id='div_2' class='my_class'>
Div2입니다.
</div>
<div id='div_3' class='your_class'>
Div3입니다.
</div>
<input type='button'
value='querySelector() - Tag Name으로 찾기'
onclick='querySelectorByTagName()'/>
function querySelectorByTagName() {
const div
= document.querySelector('div');
alert(div.innerText);
}
document.querySelector('div');
태그 이름으로 element를 찾을 때는 태그명을 문자열로 넘겨줍니다.
위 예제는 div태그를 가지는 element 중 첫번째 element를 리턴합니다.
querySelector() - 선택자 ','로 구분하기
<div id='div_1' class='red'>
red
</div>
<div id='div_2' class='blue'>
blue
</div>
<div id='div_3' class='green'>
green
</div>
<input type='button'
value='querySelector() - Class Name으로 찾기'
onclick='querySelectorByClassName()'/>
function querySelectorByClassName() {
const div
= document.querySelector('.red, .green');
alert(div.innerText);
}
document.querySelector('.red, .green');
선택자를 ','로 구분하여 전달하면 여러개의 선택자 중 첫번째로 발견되는 element를 리턴합니다.
이때, 파라미터를 여러개 넘기는 것이 아니라,
선택자를 ','로 구분한 문자열 1개가 파라미터로 넘어간다는 것에 유의하세요.
5. querySelectorAll()
사용법은 querySelector() 와 같습니다.
다만, querySelectorAll()은 이름에서 알수 있듯이,
CSS선택자(파라미터로 넘겨준)로 찾은 모든 element 목록을 리턴합니다.
querySelectorAll() - ID로 찾기
<div id='div_1' class='my_class'>
Div1입니다.
</div>
<div id='div_2' class='my_class'>
Div2입니다.
</div>
<div id='div_3' class='your_class'>
Div3입니다.
</div>
<input type='button'
value='querySelectorAll() - Id 전체 찾기'
onclick='querySelectorAllById()'/>
function querySelectorAllById() {
const div_list
= document.querySelectorAll('#div_1');
// id가 'div_1'인 element 개수 출력
const div_list_length = div_list.length;
alert(div_list_length);
// id가 'div_1'인 element 목록 출력
for(let i = 0; i < div_list_length; i++) {
alert(div_list[i].innerText);
}
}
querySelectorAll() - Class 이름으로 찾기
<div id='div_1' class='my_class'>
Div1입니다.
</div>
<div id='div_2' class='my_class'>
Div2입니다.
</div>
<div id='div_3' class='your_class'>
Div3입니다.
</div>
<input type='button'
value='querySelectorAll() - Class Name 전체 찾기'
onclick='querySelectorAllByClassName()'/>
function querySelectorAllByClassName() {
const div_list
= document.querySelectorAll('.my_class');
// class name이 'my_class'인 element 개수 출력
const div_list_length = div_list.length;
alert(div_list_length);
// class name이 'my_class'인 element 목록 출력
for(let i = 0; i < div_list_length; i++) {
alert(div_list[i].innerText);
}
}
querySelector() - Tag 이름으로 찾기
<div id='div_1' class='my_class'>
Div1입니다.
</div>
<div id='div_2' class='my_class'>
Div2입니다.
</div>
<div id='div_3' class='your_class'>
Div3입니다.
</div>
<input type='button'
value='querySelectorAll() - Tag Name 전체 찾기'
onclick='querySelectorAllByTagName()'/>
function querySelectorAllByTagName() {
const div_list
= document.querySelectorAll('div');
// tag name이 'div'인 element 개수 출력
const div_list_length = div_list.length;
alert(div_list_length);
// tag name이 'div'인 element 목록 출력
for(let i = 0; i < div_list_length; i++) {
alert(div_list[i].innerText);
}
}
querySelectorAll() - 선택자 ','로 구분하기
<div id='div_1' class='red'>
red
</div>
<div id='div_2' class='blue'>
blue
</div>
<div id='div_3' class='green'>
green
</div>
<input type='button'
value='querySelectorAll() - Class Name 전체 찾기'
onclick='querySelectorAllByClassName()'/>
function querySelectorAllByClassName() {
const div_list
= document.querySelectorAll('.red, .green');
// class name이 'my_class'인 element 개수 출력
const div_list_length = div_list.length;
alert(div_list_length);
// class name이 'my_class'인 element 목록 출력
for(let i = 0; i < div_list_length; i++) {
alert(div_list[i].innerText);
}
}
document.querySelectorAll('.red, .green');
querySelect()와 마찬가지로 선택자를 ','로 구분한 문자열을 넘겨주면
각각의 선택자에 해당하는 모든 element를 리턴합니다.
위 예제는 클래스가 'red'인 element와 'green'인 element를 리턴합니다.
DOM에서 특정 요소(element)를 검색하는 여러가지 방법을 알아보았습니다.
'IT > Javascript' 카테고리의 다른 글
[Javascript] 배열에서 최대값, 최소값 구하기 (0) | 2021.01.07 |
---|---|
[Javascript/ES6] 함수 파라미터(매개변수) 기본값 설정하기 (0) | 2021.01.07 |
[Javascript] div 생성, 삭제, 숨기기 (1) | 2021.01.06 |
[Javascript] div 안의 내용 가져오기, 추가, 변경, 삭제 (text, html) (2) | 2021.01.05 |
[Javascript] innerHTML, innerText, textContent 차이점 (1) | 2021.01.05 |