[TIL / JavaScript] DOM 요소 조작
14116 단어 JavaScriptTILJavaScript
[JavaScript] DOM 요소 조작
className
• 클래스 속성값 전체를 가져오거나 수정할 수 있다.
elems.forEach(elem => {
if (elem.className === 'red') {
elem.className = 'blue';
}
});
classList
- 개별적으로 클래스를 조작할 수 있다.
- 다양한 메소드를 제공한다.
add()
- 클래스 속성을 추가한다.
remove()
- 클래스 속성을 제거한다
toggle()
- 클래스 속성이 존재할 경우 제거하고, 그렇지 않으면 추가한다.
contains()
- 클래스 속성의 존재 여부에 따라 boolean 값을 반환한다.
replace()
- 클래스 속성을 새로운 클래스 속성으로 교체한다.
elems.forEach(elem => {
if (elem.classList.contains('blue')) {
elem.classList.replace('blue', 'red');
}
});
id
- id 속성을 가져오거나 수정할 수 있다.
getAttribute()
- id 속성의 값을 문자열로 가져온다.
removeAttribute()
- id 속성을 제거한다
hasAttribute()
- id 속성의 존재 여부에 따라 boolean 값을 반환한다.
setAttribute()
- id 속성과 값을 설정한다.
<!DOCTYPE html>
<html>
<body>
<input type="text">
<script>
const input = document.querySelector('input[type=text]');
if (!input.hasAttribute('value')) {
input.setAttribute('value', 'hello!');
}
console.log(input.getAttribute('value')); // hello!
input.removeAttribute('value');
console.log(input.hasAttribute('value')); // false
</script>
</body>
</html>
HTML 콘텐츠 조작
textContent
- 요소의 텍스트 콘텐츠를 가져오거나 수정할 수 있다
- 순수한 텍스트만 지정해야 하며 마크업을 포함시키면 문자열로 인식되어 그대로 출력된다.
<div id="divA">This is <span>some</span> text!</div>
document.getElementById('divA').textContent;
// This is some text!
document.getElementById('divA').textContent = '<h1>different!</h1>';
// <h1>different!</h1>
innerHTML
- 해당 요소의 모든 자식 요소를 포함하는 콘텐츠를 하나의 문자열로 가져올 수 있다.
- 마크업을 인식한다.
const ul = document.querySelector('ul');
console.log(ul.innerHTML);
/*
<li id="one" class="red">Seoul</li>
<li id="two" class="red">London</li>
<li id="three" class="red">Newyork</li>
<li id="four">Tokyo</li>
*/
요소 생성 및 삭제
createElement()
- 태그 이름을 인자로 전달하여 요소를 생성한다.
const newElem = document.createElement('li');
createTextNode()
- 텍스트를 인자로 전달하여 텍스트 노드를 생성한다.
const newText = document.createTextNode('Beijing');
appendChild()
- 인자로 전달한 노드를 마지막 자식 요소로 DOM 트리에 추가한다.
// newText를 newElem 자식으로 DOM 트리에 추가한다.
newElem.appendChild(newText);
const container = document.querySelector('ul');
// newElem을 container의 마지막 자식으로 DOM 트리에 추가된다.
container.appendChild(newElem);
removeChild()
- 인자로 전달한 노드를 DOM 트리에서 제거한다.
const removeElem = document.getElementById('one');
// container의 자식인 removeElem를 DOM 트리에 제거한다.
container.removeChild(removeElem);
Style
- 특정 요소에 inline 스타일을 지정할 수 있다.
const four = document.getElementById('four');
// inline 스타일 선언을 생성한다.
four.style.color = 'blue';
// font-size와 같이 '-'으로 구분되는 프로퍼티는 카멜케이스로 변환하여 사용한다.
four.style.fontSize = '2em';
P.S.
선택한 DOM 요소를 가지고 어떻게 내가 원하는 대로 내용을 조작할 수 있을지 그 방법을 알게 되었다😀
참고 문서
- Manipulating Elements by 바닐라코딩 사전 학습 가이드
- 문서 객체 모델(Document Object Model) by PoiemaWeb
- 스타일과 클래스 by JAVASCRIPT.INFO
Author And Source
이 문제에 관하여([TIL / JavaScript] DOM 요소 조작), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@nulbo/TIL-JavaScript-DOM-요소-조작저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)