Javascript ์ฝ๋๋ฅผ HTML ํ์ผ์์ Text๋ก ์ถ๋ ฅํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๋ค๋ค๋ณด์
๐จHTML & CSS ์์
Javascript ์ฝ๋๋ฅผ ์ถ๋ ฅํ HTML ํ์ผ์ด ๋จผ์ ํ์ํ๊ธฐ ๋๋ฌธ์,
HTML ๊ธฐ๋ณธ ๊ตฌ์กฐ ํ์ผ์ bodyํ๊ทธ ์์ ๋ค์๊ณผ ๊ฐ์ด ์์ฑํด์ฃผ์๋ค.
<div id="printJS">
<div id="explainText">
Printing Javascript Output Value:
</div>
<div id="printingBox">
</div>
</div>
๋ค์์ css ์์ ์ธ๋ฐ ๋ด์ฉ ๋ณด๊ธฐ ์ข์ผ๋ผ๊ณ ํ๋ ๊ฑฐ๋ผ ์คํตํด๋ ๋ณ ์๊ด์ ์๋ค
#explainText{
color: navy;
font-size: 20px;
margin-bottom: 15px;
}
#printingBox{
width: 850px;
height: 400px;
border: 2px solid silver;
color: green;
padding: 10px 0px 0px 15px;
}

โJavascript์์ HTML ์ ์กฐ์ํ๋ ๋ฐฉ๋ฒ
Javascript ์ฝ๋์ ์คํ๊ฐ์ HTML์์ ์ถ๋ ฅํ๋ ๊ณผ์ ์ Javascript๋ฅผ ํตํด HTML์ ์กฐ์ํ๋ ๊ฒ์ผ๋ก ๋ณผ ์ ์๋ค.
์ข ๋ ๊ตฌ์ฒด์ ์ผ๋ก ๋งํ์๋ฉด DOM์ผ๋ก HTML Element(์์)๋ฅผ ์กฐ์ํ๋ ๊ฒ์ด๋ค.
์ฌ๊ธฐ์ HTML ์์๋ผ๋ ๊ฒ์ <p>์ด๊ฒ์ ๋ฌธ๋จ์ ๋๋ค. </p>์ ๊ฐ์ด ๋ด์ฉ์ ํฌํจํด์ ์์ ํ๊ทธ์ ์ข ๋ฃ ํ๊ทธ๊น์ง๋ฅผ ํ๋์ ์์๋ก ๋ณผ ์ ์๋ค.
๊ทธ๋ ๋ค๋ฉด DOM์ ๋ญ๊น?
DOM์ด๋
- Document Object Model = ๋ฌธ์ ๊ฐ์ฒด ๋ชจ๋ธ
- HTML ์์๋ฅผ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด(Object)์ฒ๋ผ ์กฐ์ํ ์ ์๊ฒ ๋ง๋ ๋ชจ๋ธ/๊ตฌ์กฐ
- DOM์ ์ด์ฉํด์ HTML๋ก ๊ตฌ์ฑ๋ ์นํ์ด์ง์ Javascript ์ฝ๋๋ฅผ ์ ์ฉํ ์ ์๋ค
์ด DOM๊ณผ ์ด๋ฒคํธ๋ฅผ ํตํด ์ ์ ์ธ HTML ํ์ด์ง๋ฅผ ๋์ ์ผ๋ก ๋ง๋๋ ๊ฒ๋ ๊ฐ๋ฅํ๋ค.
์ด๋ฒ ํฌ์คํ ์์๋ Javascript์ ์ฝ๋๋ฅผ HTMLํ์ด์ง์ ๋์ฐ๋ ์ ๋๋ก๋ง ์ ๊ทผํด๋ณด์
HTML ์์๋ฅผ Javascript ๋ณ์์ ์ ์ฅํ๊ธฐ
๋ฏธ๋ฆฌ ์์ฑํด๋ HTML ํ์ผ์์ ์ฐ๋ฆฌ๊ฐ Javascript ์ฝ๋๋ฅผ ๋์ธ ๊ณณ์ ํ์ ๋ฐ์ค ๋ด๋ถ์ด๋ฏ๋ก, printingBox๊ฐ id์ธ ์์๋ง์ ์ง์ ํด์ผ ํ๋ค.
์ด๋ ์ฌ์ฉํ๋ ํจ์๊ฐ getElementById() ํจ์์ด๋ค. ํํ๋ ๋ค์๊ณผ ๊ฐ๋ค
getElementById() ๊ธฐ๋ณธ ํํ
var [HTML์์๋ฅผ ์ ์ฅํ ๋ณ์ ์ด๋ฆ] = document.getElementById("[์ง์ ํ ์์์ id๊ฐ]");
์ด๊ฑธ ์์ ์์ ์ ์ ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค
์์
var printingBox = document.getElementById("printingBox");
์ฌ๊ธฐ์ document๋ Javascript ์ฝ๋๋ฅผ ์คํํ๋ html๋ฌธ์๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
id๊ฐ printingBox์ธ HTML์์๋ฅผ ๊ฐ์ ธ์์ printingBox ๋ผ๋ ๋ณ์์ ๋ด์๋๋ ์ฝ๋์ด๋ค.
์ด๋ ๊ฒ ์ํ๋ HTML ์์๋ฅผ ์ง์ ํด์ Javascript ์ฝ๋์์ ๊ฐ์ ์ ์ฅํ๋ ๋จ๊ณ๊น์ง ์ฑ๊ณตํ๋๋ฐ,
์ฌ๊ธฐ์ getElementById ์ธ์๋ querySelector()์ getElementsByClass() ํจ์๋ฅผ ์ฌ์ฉํ ์๋ ์๋ค.
Javascript์์ HTML ์์์ ์ํ๋ ๊ฐ ์ง์ด๋ฃ๊ธฐ
์ด๋ ๊ฒ ์ํ๋ HTML ์์๋ฅผ ์ง์ ํ์ผ๋ฉด ํด๋น ์์์ ์์ ์ํ๋ ๊ฐ์ ํ ๋นํด์ฃผ๋ฉด ๋๋๋ฐ
์ฌ๊ธฐ์ ํ์ํ ์์ฑ์ผ๋ก innerHTML, innerText, insertAdjacentHTML , insertAdjacentText๋ฑ์ด ์๋ค.
๋ค์ ๋ ์์ฑ์ DOM์ ๋ํด ์ข ๋ ๊น๊ฒ ์ค๋ช ํด์ผ ํ๋ฏ๋ก ๋ค์์ ์์๋ณด๋ ๊ฑธ๋ก ํ๊ณ ,
๊ฐ์ฅ ์์ฃผ ์ฌ์ฉ๋๊ณ ์ง๊ธ ์ค์ต์ ํ์ํ ์์ ๋ ์์ฑ๋ง ์์๋ณด์
- innerHTML : HTML์์์ ํ๊ทธ๊น์ง ๊ฐ์ ธ์จ๋ค. HTML ํน์ ์์น์ ์๋ก์ด HTML์ ์ฝ์ ํ ๋ ์ฌ์ฉํ ์ ์๋ค.
- innerText : innerHTML๊ณผ ์ ์ฌํ์ง๋ง HTML ์์์ ๋ด์ฉ๋ง ๊ฐ์ ธ์จ๋ค.
innerHTML vs innerText ์ฐจ์ด์ ๋น๊ต
๋จผ์ ๊ฐ ์์ฑ์ด ๊ฐ์ง๋ ๊ฐ์ ์์ ์์์ ์ ์ฉํ์ฌ ๋น๊ตํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค
printingBox.innerHTML; // <div id="printingBox"> box <div> ๋ฅผ ๋ชจ๋ ๊ฐ์ ธ์จ๋ค
printingBox.innerText; // box ๋ง ๊ฐ์ ธ์จ๋ค
๋ค์์ ์ง์ ์ด ์์ฑ์ ์๋ก์ด ๊ฐ์ ๋ฃ์ ๋ ์ฐจ์ด์ ์ ๋ณด์
printingBox.innerHTML = "<span style=color:red'> A </span>"
innerHTML์ ์์ ๊ฐ์ด ์คํ์ผ์ด ์ ์ฉ๋ ํ๊ทธ๋ฅผ ํฌํจํด์ ์์ ๋ด๋ถ์ ์๋ก์ด ์์๋ฅผ ๋ฃ์ด์ค ๋

์๋ก์ด ์์์ ๋ด์ฉ ๋ถ๋ถ์ธ A๋ง ํ์ด์ง์์ ๋ณด์ด๊ณ style๋ ์ ๋๋ก ์ ์ฉ๋์ด spanํ๊ทธ๋ก ์์ฑ๋ ์์๊ฐ ๋ด๊ฐ ์ง์ ํ ๋ฐ์ค ์์ ์์ ์๊ฒผ์์ ์ ์ ์๋ค.
printingBox.innerText = "<span style=color:red'> A </span>"
๋ฐ๋ฉด innerText๋ ๊ฐ์ ๊ฐ์ ๋ฃ์ด๋

์ ์ฒด ๋ด์ฉ์ด ๋ฐ๋ผ ๋์ค๋ฉฐ ๋น์ฐํ ์คํ์ผ๋ ์ ์ฉ๋์ง ์์์ ๊ธฐ์กด ๊ฐ์ธ ์ด๋ก์ ๊ธ์จ๊ฐ ๋์จ๋ค.
์ํฉ์ ๋ง๊ฒ ์ ์ ์ฉํ์ฌ ์ฌ์ฉํ๋ฉด ๋๊ฒ ๋ค.
์ฌ๊ธฐ๊น์ง ์์ผ๋ฉด ์ด์ ์ํ๋ Javascript ์ฝ๋๋ฅผ ์์ฑํด์ ์์ ๋ฐฉ์๋๋ก HTML์์์ ๋ฃ์ด์ฃผ๋ฉด ๋์ด๋ค.
๋๋ ์์๋ก ๋ค์๊ณผ ๊ฐ์ ์ฝ๋๋ฅผ ์์ฑํ์ฌ
function practiceCode() {
var a = 10;
var b = 5;
var result = a + b;
return result;
}
innerHTML๋ก ๋ฃ์ด์ฃผ์๋ค.
printingBox.innerHTML = "<span id='textPrinted'>" + practiceCode() +"</span>"
(Template Literal ์ด ์ฌ์ฉ ๊ฐ๋ฅํ๋ค๋ฉด `<span id="textPrinted"> ${ practiceCode() }</span>` ๋ก ์์ฑํด๋ ๋๊ฐ๋ค.)
ํ์ด์ง์์๋ ๋ค์๊ณผ ๊ฐ์ด ๋์จ๋ค.

๋ฌผ๋ก ํจ์๋ฅผ ๋ฐ๋ก ๋ง๋ค์ง ์๊ณ ํจ์๊ฐ ์๋ ์์น์ ๋ฐ๋ก ์ํ๋ ์ฐ์ฐ์ ํ๋ ์ฝ๋๋ฅผ ์์ฑํด๋ ๋๋ค.
์ ์ฒด ์ฝ๋
var printingBox = document.getElementById("printingBox");
printingBox.innerHTML = "<span id='textPrinted'>" + practiceCode() +"</span>"
function practiceCode() {
var a = 10;
var b = 5;
var result = a + b;
return result;
}
์ด๋ ๊ฒ Javascript ์ฝ๋๋ฅผ HTML์์ ์ถ๋ ฅํ์ฌ ๋ฐ๋ก ๋ณผ ์ ์๋ ์ฐ์ต์ฅ ์ฌ์ดํธ๊ฐ ์์ฑ๋์๋ค.
html,css๋ฅผ ํฌํจํ ์ ์ฒด ์ฝ๋
GitHub - joraeng/javascript_notepad
Contribute to joraeng/javascript_notepad development by creating an account on GitHub.
github.com
'Language > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [JavaScript] arrow function ์ค๊ดํธ ์๋ต, map, ๊ตฌ์กฐ๋ถํดํ ๋น (0) | 2022.10.11 |
|---|