선택하기
javascript를 이용해 DOM(html 요소)를 선택하는 방법
📕 아이디로 선택하기
Html 태그의 속성인 id를 이용해 ElementDOM을 선택하는 방법으로는 document.getElementById() 메서드가 있음
id는 태그에 고유값을 부여해주는 속성으로 같은 id값을 사용하는 것은 지양(에러가 발생하지 않음)
ElementDOM은 style이라는 속성으로 css스타일에 값을 출력하거나 변경할 수 있음
<body id="body-tag">
<!-- 버튼에 onclick 이벤트 속성으로 클릭시 발생할 이벤트 지 -->
<input type="button" value="어둡게" onclick="
// bodyTag변수에 id값으로 Element 할당
var bodyTag = document.getElementById('body-tag');
bodyTag.style.backgroundColor = 'black'; // 배경색 변경
bodyTag.style.color = 'white' // 글자색 변
" />
<input type="button" value="밝게" onclick="
var bodyTag = document.getElementById('body-tag');
bodyTag.style.backgroundColor = 'white';
bodyTag.style.color = 'black'
" />
<h1>HTML ID로 선택하기</h1>
<p>
자바스크립트는 ‘웹페이지에 생동감을 불어넣기 위해’ 만들어진 프로그래밍 언어입니다.
자바스크립트로 작성한 프로그램을 스크립트(script) 라고 부릅니다. 스크립트는 웹페이지의 HTML 안에 작성할 수 있는데,
웹페이지를 불러올 때 스크립트가 자동으로 실행됩니다.
스크립트는 특별한 준비나 컴파일 없이 보통의 문자 형태로 작성할 수 있고, 실행도 할 수 있습니다.
이런 관점에서 보면 자바스크립트는 자바(Java)와는 매우 다른 언어라고 할 수 있습니다.
</p>
</body>
📕 클래스로 선택하기
Html의 속성중 하나인 class속성값을 이용해 선택하는 방법으로는 document.getElementsByClassName()라는 메서드가 있음
class 속성은 여러 html element에 적용할 수 있는 속성으로 유사 배열(배열은 아니지만 배열과 같이 length 등 기능 제공)의 형태를 반환함
하나의 태그에 여러가지 class를 지정할수도 있
<body id="body-tag">
<!-- 버튼에 onclick 이벤트 속성으로 클릭시 발생할 이벤트 지 -->
<input type="button" value="red" onclick="
// languageItems변수에 class값으로 Element 유사배 할당
var languageItems = document.getElementsByClassName('language-item');
languageItems[0].style.color = 'red'; // 첫번째 요소 컬러 변
languageItems[1].style.color = 'red'; // 두번째 요소 컬러 변
languageItems[2].style.color = 'red'; // 번째 요소 컬러 변경
" />
<input type="button" value="blue" onclick="
// languageItems변수에 class값으로 Element 유사배 할당
var languageItems = document.getElementsByClassName('language-item');
languageItems[0].style.color = 'blue'; // 첫번째 요소 컬러 변
languageItems[1].style.color = 'blue'; // 두번째 요소 컬러 변경
languageItems[2].style.color = 'blue'; // 번째 요소 컬러 변경
" />
<h1>HTML class로 선택하기</h1>
<ul>
<li class='language-item html'>html : 마크업 언어</li>
<li class='language-item css'>css : html 스타일 언어</li>
<li class='language-item js'>javascript : 동적 언</li>
</ul>
</body>
📕 태그명으로 선택하기
html tag의 이름을 이용해서 선택하는 방법은 document.getElementsByTagName() 메서드를 사용
한 html 문서내에는 같은 tag들이 여러개 있을 수 있으므로 class를 선택하는 것과 마찬가지로 여러 element 들을 유사배열 형태로 반환
<body id="body-tag">
<!-- 버튼에 onclick 이벤트 속성으로 클릭시 발생할 이벤트 지 -->
<input type="button" value="selector" onclick="
// languageItem변수에 class값으로 첫번 Element 할당
var languageItem = document.querySelector('.language-item');
languageItem.style.color = 'red'; // 첫번째 요소 컬러 변경
" />
<input type="button" value="selectorAll" onclick="
// languageItems변수에 class값으로 Element 유사배 할당
var languageItems = document.querySelectorAll('.language-item');
languageItems[0].style.color = 'blue'; // 첫번째 요소 컬러 변
languageItems[1].style.color = 'blue'; // 두번째 요소 컬러 변경
languageItems[2].style.color = 'blue'; // 번째 요소 컬러 변경
" />
<h1>HTML class로 선택하기</h1>
<ul>
<li class='language-item html'>html : 마크업 언어</li>
<li class='language-item css'>css : html 스타일 언어</li>
<li class='language-item js'>javascript : 동적 언</li>
</ul>
</body>
📕 CSS 선택자로 선택하기
css 선택자를 이용해 선택하는 방법은 document.querySelector()와 document.querySelectorAll()이 있음
document.querySelector() 메서드는 class나 tag와 같이 여러개의 결과값이 존재하더라도 가장 먼저 나오는 한 개의 결과만을 반환
document.querySelectorAll() 메서드는 해당하는 element가 여러개라면 유사배열의 형태로 모두 반환함
<body id="body-tag">
<!-- 버튼에 onclick 이벤트 속성으로 클릭시 발생할 이벤트 지 -->
<input type="button" value="red" onclick="
// liItem변수에 Tag명을 탐색하여 Element 유사배열 할당
var liItem = document.querySelector('li');
liItems[0].style.color = 'red'; // 첫번째 요소 컬러 변경
liItems[1].style.color = 'red'; // 두번째 요소 컬러 변
liItems[2].style.color = 'red'; // 번째 요소 컬러 변경
" />
<input type="button" value="blue" onclick="
// liItems변수에 Tag명을 탐색하여 Element 유사배열 할당
var liItems = document.getElementsByTagName('li');
liItems[0].style.color = 'blue'; // 첫번째 요소 컬러 변
liItems[1].style.color = 'blue'; // 두번째 요소 컬러 변경
liItems[2].style.color = 'blue'; // 번째 요소 컬러 변경
" />
<h1>HTML class로 선택하기</h1>
<ul>
<li>html : 마크업 언어</li>
<li>css : html 스타일 언어</li>
<li>javascript : 동적 언</li>
</ul>
</body>
Last updated
Was this helpful?