Elice SW 2/TIL
DAY 8 - TIL
자이구
2022. 4. 17. 00:00
HTML 요소를 선택하는 법
메소드 | 설명 | 리턴Type |
document.querySelector() | 해당 선택자로 선택되는 요소를 1개 선택 | 요소 |
document.querySelectorAll() | 해당 선택자로 선택되는 요소를 모두 선택 | 배열 |
document.getElementsByClassName() | 해당 클래스에 속한 요소를 모두 선택 | 배열 |
document.getElementsByName() | 해당 name 속성값을 가지는 요소를 모두 선택 | 배열 |
document.getElementsByTagName() | 해당 tag의 요소를 모두 선택 | 배열 |
document.getElementById() | 해당 id의 요소를 선택 | 요소 |
classList
선택된 Element(요소)의 클래스명들을 반환
.add(클래스명) | 선택된 Element에 클래스명 추가 |
.remove(클래스명) | 선택된 Element에 클래스명 삭제 |
.toggle(클래스명) | 선택된 Element에 클래스명이 존재하면 삭제하고, 없으면 추가 |
AddEventListener("event",function(){})
선택된 Element가 어떠한 이벤트를 가질 때 뒤의 함수가 호출
document.getElementById("lol").addEventListener("click", function(){
//lol을 클릭될 때
//호출 될 함수
alert("button clicked")
});
사용 가능한 이벤트
click | 클릭 시 (마우스 버튼에서 손가락을 땐 순간) |
mouseenter | 마우수를 요소 위에 올리면 |
mouseover | 마우스를 요소 위에 올리면 (자식 Element도 영향을 받음) |
mouseout | 마우스가 요소 밖으로 벗어날 때 |
mousedown | 클릭 하고 버튼에서 손가락을 때기 전 |
focus | 포커스가 갔을 때 |
keypress | 키를 누르는 순간에 발생, 그리고 누르고 있는 동안 계속 발생 |
keydown | 키를 누를 때 |
keyup | 키를 눌렀다가 떼는 순간 |
load | 웹 페이지 소스가 다운로드 되었을 때 |
resize | 창크기를 조절 할 때 |
scroll | 스크롤바, 마우스 휠, up, down 버튼으로 스크롤 할 시 |
unload | 링크를 클릭해서 다른 페이지로 이동하거나 브라우저나 브라우저 탭을 닫았을 때 |
change | form 필드의 상태가 변경 되었을 때 |
mouseover VS mouseenter
The mouseover event triggers when the mouse pointer enters the element, and its child elements.
The mouseenter event is only triggered when the mouse pointer enters the element.
window 객체
window 객체는 웹 브라우저의 창을 가르키며, window 객체를 이용하여 브라우저를 조작 할 수 있으며 생략 가능하다.
window.document.~~~ ----> document.~~~~~
메서드 설명
close() | 현재 창을 닫습니다 |
open(링크, 새 탭 or 현재 탭 (optional), 설정 (optional)) | 새 창을 엽니다 |
setTimeout(함수, 밀리초) | 지정한 초 뒤에 함수 실행 |
alert(메시지) | 팝업 창 생성 |
scrollTo(옵션) | 옵션에 있는 좌표 값으로 스크롤 |
innerHTML VS innerText VS textContent
<div id='my_div'>
안녕하세요? 만나서 반가워요.
<span style='display:none'>숨겨진 텍스트</span>
</div>
<input type='button'
value='innerHTML'
onclick='getInnerHTML()'/>
<input type='button'
value='innerText'
onclick='getInnerText()'/>
<input type='button'
value='textContent'
onclick='getTextContent()'/>
function getInnerHTML() {
const element = document.getElementById('my_div');
alert(element.innerHTML);
}
function getInnerText() {
const element = document.getElementById('my_div');
alert(element.innerText);
}
function getTextContent() {
const element = document.getElementById('my_div');
alert(element.textContent);
}
innerHTML
innerHTML은 'Element'의 속성으로, 해당 Element의 HTML, XML을 읽어오거나, 설정할 수 있다.
- HTML 요소를 반환하거나 변경할 수 있다
- XSS 공격에 취약하니 주의
안녕하세요? 만나서 반가워요.
<span style='display:none'>숨겨진 텍스트</span>
innerText
innerText는 'Element'의 속성으로, 해당Element 내에서 사용자에게 '보여지는' 텍스트 값을 읽어온다.
- 마크업 언어가 적용된 상태로 읽어온다
- 스타일 또한 적용된 상태로 읽기 때문에 display: none; 한 값은 가져오지 못한다
안녕하세요? 만나서 반가워요.
//연속되는 공백은 무시하고 하나의 공백만 처리
textContent
textContent는 'Node'의 속성으로, innetText와는 달리 <script>나 <style> 태그와 상관없이
해당 노드가 가지고 있는 텍스트 값을 그대로 읽는다.
- 텍스트만 가져온다
- 스타일은 무시한다
안녕하세요? 만나서 반가워요.
숨겨진 텍스트