document.body.innerHTML = '내용 다 바꿈';
위는 body태그 내부에 있는 것을 '내용 다 바꿈'이라는 텍스트로 바꾼 것입니다.
body태그내에 엄청나게 많은 요소가 있더라도 innerHTML을 사용하면 내용이 전부 교체됩니다.
let blueElement = document.querySelector('.blue');
blueElement.style.backgroundColor = 'blue';
css selector 이용하여 요소에 접근이 가능하다
.createElement(tagName) : 요소 만들기
.appendChild(): 요소를 뒤쪽에 붙여준다
// class 가져오기
function updateTitle() {
let title = document.getElementsByClassName('h1-title')[0];
// [0] 붙인 이유는 Element's' 복수표현 메소드로 가져오면 해당 요소들의 배열로 만들기 때문이다(요소가 하나일지라도)
title.innerHTML = '바뀐 제목!!!';
}
// tag 가져오기
function addClass(name) {
let title = document.getElementsByTagName('h1')[0];
title.innerHTML = "wecode.com/img.png";
}
// tag 만들어서 삽입하기
function addElement() {
let listWrap = document.createElement('ul');// ul 생성
let list = document.createElement('li');// li 생성
let listContent = document.createElement('span');// span 생성
listContent.innerHTML = "목록이다";// span 내용
list.appendChild(listContent);// span -> li 삽입
listWrap.appendChild(list);// li -> ul 삽입
document.body.appendChild(listWrap);// ul -> body 삽입
// body 태그는 변수를 별도로 지정하지 않아도 document property(key) 존재한다
}
function assignment(){
let h1_bring = document.getElementsByTagName('h1');// HTLMCollection 유사배열
for (let i in [...h1_bring]){// [...배열] 내용만을 복사하는 기능
let p_made = document.createElement('p');// p 생성
p_made.className = 'dom';// p <- class 부여
p_made.innerHTML = 'DOM';// p <- 내용 입력
h1_bring[i].appendChild(p_made);// h1 <- p 삽입
}
}
assignment();
for/in
for
문에 변수 i
선언하는 것이 좋다Link: HtmlCollection 에다가 for문 쓰지 않는 이유
사용된 메소드에 따라 구별된다
children
, getElementsByTagName
: HTMLCollectionchildNodes
, querrySelectorAll
: NodeListLink: HTMLCollection & NodeList 살펴보기
요소.addEventListener(이벤트종류, function() {
//이벤트가 일어났을 때 실행할 내용
});
<script src="index.js"></script>