자바스크립트 DOM
DOM이란?
![](https://blog.kakaocdn.net/dn/cpBkCj/btsyNu0UJlx/kIIARuLMVdqgRbmcfvS1xK/img.png)
![](https://blog.kakaocdn.net/dn/k24vk/btsyOWpjenc/wYWOikkFfnkzUpqnOklHJK/img.png)
![](https://blog.kakaocdn.net/dn/ddjDJr/btsyLKXEpDT/RDRXMZ87wAgKpMYKc6KMMk/img.png)
![](https://blog.kakaocdn.net/dn/chLEFj/btsyLmW3Bvx/A53Lg9F214sUVIRshefKpk/img.png)
![](https://blog.kakaocdn.net/dn/nxXbQ/btsyOGmtAk1/0SJEUl2FfOW2v7iumgTBa1/img.png)
![](https://blog.kakaocdn.net/dn/IcJSV/btsyLMVt06s/o7kvR8URCNZEJK7aJxf3p0/img.png)
![](https://blog.kakaocdn.net/dn/txma9/btsyLL98Kd1/JiM2CtLkK4hkUhAMUDvRf0/img.png)
![](https://blog.kakaocdn.net/dn/bZfGsz/btsyNrpyz03/fkW1NnNit7RgDMHS3Z9yi1/img.png)
![](https://blog.kakaocdn.net/dn/Sq2mG/btsyLIr2Gko/Xr6mF4fk1juHU5AARUAEZK/img.png)
![](https://blog.kakaocdn.net/dn/ry51U/btsyPyBH18m/KAYIdncnCNjWkeEOR9l820/img.png)
![](https://blog.kakaocdn.net/dn/bTW70E/btsyIKjQony/hg6TtfCSZPeSyhAkMufq21/img.png)
![](https://blog.kakaocdn.net/dn/cwO6IJ/btsyMybowDz/Zvb4XFNC2gFNyFPjYgtE6K/img.png)
![](https://blog.kakaocdn.net/dn/bfOuQB/btsyMcTWunf/o9EI9Sz7JtdbLsVk4szamK/img.png)
1. 객체 {} => .
2. 배열 [] => 인덱스 번호
3. 함수 ()
객체, 배열, 함수 선언 방법
DOM (Document Object Model)
- HTML 문서 쪼개서 객체화 => JS 영역으로 조정
★★ - HTML 문서 내에 최상위 객체 => document 객체 ★★
내가 만약 JS 의 영역에서 HTML 문서를 손대고 싶다면? document 접근
● DOM 실습
<body>
<p id="text">Hello, World!</p>
<button onclick="innerFunc()">Click!</button>
<script>
let innerFunc =()=>{
let pTag = document.getElementById('text')
요소 = 태그 + 컨텐츠
요소 안의 내용만 수정 or 접근? .innertext
(1) 접근
console.log(pTag.innerText)
(2) 수정 (그대로 가져와서 대입)
pTag.innerText = '<h1>수정완료</h1>'
// 태그까지 적용하고 싶을 때는? .innerHTML
pTag.innerHTML = '<h1>수정완료</h1>'
}
</script>
</body>
- 버튼 누르기전 HTML화면
![](https://blog.kakaocdn.net/dn/ckKqcW/btsyJzI8Kjw/Ww1Bk4s10pK2KjqRApDbl0/img.png)
- 버튼 누르고 난 후 HTML화면
![](https://blog.kakaocdn.net/dn/bgSYdr/btsyMNsQUcF/8Q8uE4wIKDoOlZsFucjBy0/img.png)
- 콘솔화면창
![](https://blog.kakaocdn.net/dn/V4COR/btsyMoNDlmD/CE9h8KMFCGUDiQ4LcVO0gk/img.png)
● DOM 실습2
<body>
<span id="span1">0</span>
<br>
<button onclick="plus()">+1 증가</button>
<button onclick="minus()">-1 감소</button>
<script>
1. plus 함수 생성
1-1. 아이디가 span1인 span 태그의 요소를 JS의 영역으로 가지고 올 것
1-2. 요소 안의 텍스트만 1씩증가
** 단, 현재 0이라는 글자는 string 형이다.
/* 나의 풀이
function plus(){
let spanTag = document.getElementById("span1")
spanTag.innerText++
}
*/
let span = document.getElementById("span1")
function plus(){
let spanNum = Number(span.innerText)
span.innerText= spanNum+1
}
2. minus 함수 생성
2-1. 아이디가 span1인 span 태그의 요소를
JS의 영역으로 가지고 올것
2-2. 요소 안의 텍스트만 1씩 감소
2-3. 0 밑으로는 더이상 감소 X
/* 나의 풀이
function minus(){
let spanTag = document.getElementById("span1")
spanTag.innerText--
if (spanTag.innerText<0){
spanTag.innerText=0
}
}
*/
function minus(){
let spanNum= Number(span.innerText)
if (spanNum>0){
span.innerText = spanNum-1
}
}
</script>
</body>
- 초기화면
![](https://blog.kakaocdn.net/dn/ehvfch/btsyPxJyJfJ/YYDQUYDcscdYe5sUgfB9FK/img.png)
- +1버튼증가 화면
![](https://blog.kakaocdn.net/dn/b4gnyv/btsyIQxEQXX/7aNtWVB6rCZXEeCcvenp4K/img.png)
- -1버튼감소 화면
![](https://blog.kakaocdn.net/dn/bSRS1k/btsyLN1beXi/JUWO6soaSnBYAMXT3kdS6k/img.png)
● DOM input 실습
<body>
<input type="text" id="txt">
<button onclick="data()">클릭</button>
<script>
let data = () =>{
// input태그에 있는 값을 가져올때는
// .value를 사용한다
let input=document.getElementById('txt')
console.log(input.value)
}
</script>
![](https://blog.kakaocdn.net/dn/ejPWHz/btsyLHmlkMD/n82iUZQxnj2ZAWAKRhN7dK/img.png)
클릭결과 콘솔창
![](https://blog.kakaocdn.net/dn/9sUWH/btsyLlRntQ6/1yaxMq64nCaYulgpHkWAV1/img.png)
![](https://blog.kakaocdn.net/dn/YRWHn/btsyOEoEonH/WsnknkruYtiKvrkTBspWak/img.png)
![](https://blog.kakaocdn.net/dn/Pp3sX/btsyJxLjbLY/vZmNQVR5PLnfSk9IDJP4a0/img.png)
2번 입력후 클릭결과 콘솔창
![](https://blog.kakaocdn.net/dn/Gg1Fw/btsyLmitmiW/DVpOarN2kldZBaReJR6if0/img.png)
● DOM input 실습2
<body>
<h1>입력한 값을 h1태그로 출력해보기</h1>
<input type="text" id="txt">
<button onclick="data()">h1태그 출력</button>
<div id="div1"></div>
<script>
1. .innerText
2. .innerHTML
3. .value
data라는 함수 생성 => 그 안에 로직
(1) 아이디가 txt인 input태그 안의 값을
txt라는 변수안에 담아준다
(2) 아이디가 div1인 div태그 안에
사용자가 입력한 내용을 담아준다. (단, h1태그로)
(3) 이때, 사용자가 입력한 내용은 누적된다. => '+='
let input = document.getElementById("txt")
let divIn =document.getElementById("div1")
let data = () =>{
divIn.innerHTML += '<h1>'+input.value+'</h1>'
}
- 입력후 h1태그 출력 눌렀을때 HTML화면
![](https://blog.kakaocdn.net/dn/bStOKY/btsyMy3wl8I/1YkyM0ihtIvBM3N3M7kXh1/img.png)
![](https://blog.kakaocdn.net/dn/cNC0pt/btsyNvMim0P/znv3PdpW47pp1onCXzk4ak/img.png)
<body>
<ul>
<li>Html</li>
<li>CSS</li>
<li>JS</li>
</ul>
<script>
let li = document.getElementsByTagName('li')
console.log(li[1].innerText)
// HTML Collection 형태 (유사배열)
// 태그이름, 클래스이름을 사용해서
// Html 요소를 가지고 올 때는
// 배열과 같은 형태를 사용한다
console.log(li.length)
for(let i =0; i<li.length;i++){
console.log(li[i].innerText)
li[i].innerText = 'hi'
}
</script>
</body>
- HTML창( for(let i =0; i<li.length;i++){
console.log(li[i].innerText)
li[i].innerText = 'hi'
})
![](https://blog.kakaocdn.net/dn/kRwbl/btsyMcfkEM9/8wofyoLcCbKPWgTQKnFHlK/img.png)
- 콘솔 화면창( console.log(li[1].innerText))
![](https://blog.kakaocdn.net/dn/DqGJS/btsyLIr2Ogo/PumfH0sj5MibFjDumIR3n1/img.png)
- 콘솔 화면창(console.log(li.length))
![](https://blog.kakaocdn.net/dn/vo3Ni/btsyPvrr7Ly/Q8Ube4eeG3wd9XpKk6Tk8K/img.png)
- 콘솔 화면창(for(let i =0; i<li.length;i++){ console.log(li[i].innerText) })
![](https://blog.kakaocdn.net/dn/bqb19r/btsyJwTaYdh/XjEfSS9tGRFFrfs03ER1R1/img.png)
'개발 공부 > JS, JQuery' 카테고리의 다른 글
자바스크립트 스타일바꾸기, 콜백함수(이벤트) (0) | 2023.10.19 |
---|---|
jQuery 사용 방법, 다운로드 방법 (1) | 2023.10.19 |
자바스크립트로 문자열 포매팅 구현하기. String.format() (0) | 2023.10.18 |
자바 스크립트 객체생성 (0) | 2023.10.18 |
자바 스크립트, 함수 (0) | 2023.10.18 |