๐Ÿ“Web Developing/JavaScript ๊ธฐ์ดˆ

DOM์„ ์ด์šฉํ•œ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ๊ธฐ

Hush 2022. 6. 19. 20:43

HTML ์š”์†Œ์— ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ๊ธฐ๋ฅผ ์ง€์ •ํ•˜๋ฉด ํƒœ๊ทธ ์†์„ฑ๊ณผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์†Œ์Šค๊ฐ€ ์„ž์ธ๋‹ค.

๊ทธ๋ž˜์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ˆ˜์ •ํ•˜๋ ค๋ฉด HTML์˜ ํƒœ๊ทธ์™€ ์†์„ฑ์„ ํ•˜๋‚˜์”ฉ ์ฐพ์•„๋ด์•ผํ•œ๋‹ค.

ํ•˜์ง€๋งŒ DOM์„ ์ด์šฉํ•˜์—ฌ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ๊ธฐ๋ฅผ ์ง€์ •ํ•˜๋ฉด ํƒœ๊ทธ์™€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์†Œ์Šค๋ฅผ ๋ถ„๋ฆฌํ•ด์„œ ๋ณด๊ธฐ ์ข‹๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ง€๊ธˆ๊นŒ์ง€ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ๊ธฐ๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ HTML์ด ์ฃผ์ธ์ด ๋˜์–ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํ•จ์ˆ˜๋ฅผ ๋ถˆ๋Ÿฌ์™€์„œ ์‚ฌ์šฉํ–ˆ๋‹ค.

ํ•˜์ง€๋งŒ DOM์„ ์‚ฌ์šฉํ•˜๋ฉด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ฃผ์ธ์ด ๋˜์–ด HTML์˜ ์š”์†Œ๋ฅผ ๊ฐ€์ ธ์™€์„œ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ๊ธฐ๋ฅผ ์—ฐ๊ฒฐํ•œ๋‹ค.

HTML๊ณผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ค‘์—์„œ ์–ด๋А ์ชฝ์„ ์ค‘์‹ฌ์œผ๋กœ ์žก๋Š”๊ฐ€์— ๋”ฐ๋ผ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋‹ค๋ฅธ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๋ฉด ๋œ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด ์›น ์š”์†Œ๋ฅผ ํด๋ฆญํ–ˆ์„ ๋•Œ ์‹คํ–‰ํ•  ํ•จ์ˆ˜๋ฅผ ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ธฐ๋ณธ ํ˜•์‹์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

์›น ์š”์†Œ.onclick = ํ•จ์ˆ˜;

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ์›น ์š”์†Œ๋ฅผ ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

๊ทธ์ค‘์—์„œ ํ•จ์ˆ˜ querySelector()๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ด ์‰ฝ๋‹ค.

querySelector()์˜ ๊ด„ํ˜ธ ์•ˆ์—๋Š” ํด๋ž˜์Šค ์ด๋ฆ„์ด๋‚˜ id ์ด๋ฆ„ ๋˜๋Š” ๋‹ค์–‘ํ•œ ์„ ํƒ์ž๋ฅผ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค.

๋‹ค์Œ์€ id="change"์ธ ๋ฒ„ํŠผ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ ๊ธ€์ž์ƒ‰์„ ๋ฐ”๊พธ๋Š” ์˜ˆ์ œ์ด๋‹ค.

querySelector()๋ฅผ ์‚ฌ์šฉํ•ด ๋ฒ„ํŠผ ์š”์†Œ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ๋ณ€์ˆ˜ changeBttn์— ์ €์žฅํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  changeBttn์— onclick์„ ์‚ฌ์šฉํ•ด changeColor() ํ•จ์ˆ˜๋ฅผ ์—ฐ๊ฒฐํ•œ๋‹ค.

์ด๋•Œ ์ฃผ์˜ํ•  ์ ์€ ํ•จ์ˆ˜์˜ ์ด๋ฆ„๋งŒ ์‚ฌ์šฉํ•˜๊ณ  ๊ด„ํ˜ธ๋Š” ๋ถ™์ด์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <button id="change">๊ธ€์ž์ƒ‰ ๋ฐ”๊พธ๊ธฐ</button>
    <p>Hi my name is Hush!</p>
        

    </div>
    <script>
        var changeBttn = document.querySelector("#change");
        changeBttn.onclick= changeColor

        function changeColor() {
            document.querySelector("p").style.color="#f00"
        }
    </script>
</body>
</html>

๋งŒ์•ฝ ์ƒ๊ธฐ ์˜ˆ์ œ์ฒ˜๋Ÿผ ์›น ์š”์†Œ๋ฅผ ํ•œ๋ฒˆ๋งŒ ํ˜ธ์ถœํ•  ๊ฒƒ์ด๋ผ๋ฉด ๋ณ€์ˆ˜์— ๊ตณ์ด ์ €์žฅํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.

๋˜ํ•œ ํ•จ์ˆ˜๋ฅผ ํ•œ๋ฒˆ๋งŒ ์‚ฌ์šฉํ•  ๊ฑฐ๋ผ๋ฉด ์ด๋ฆ„์„ ์ง€์–ด์ค„ ํ•„์š”๊ฐ€ ์—†๋‹ค.

๋‹ค์Œ์€ ์ด๋Ÿฌํ•œ ํŠน์ง•์„ ํ™œ์šฉํ•œ ๋‹ค๋ฅธ ๋ฐฉ์‹์˜ ์ฝ”๋”ฉ์ด๋‹ค.

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <button id="change">๊ธ€์ž์ƒ‰ ๋ฐ”๊พธ๊ธฐ</button>
    <p>Hi my name is Hush!</p>
        

    </div>
    <script>
        document.querySelector("#change").onclick= function() {
            document.querySelector("p").style.color="#f00";
        }
    </script>
</body>
</html>