ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ DOM ๊ฐ์ฒด ์ œ์–ด
    JavaScript 2020. 9. 9. 07:48

    ๐ŸŽฏ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ DOM ๊ตฌ์กฐ, ๋…ธ๋“œ ๊ฐ์ฒด ์ ‘๊ทผ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณธ๋‹ค.

     

     

     

     

    DOM( Document Object Model )


    ์›นํŽ˜์ด์ง€์˜ HTML๋ฌธ์„œ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ฒด๋กœ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๊ณ„์ธต๊ตฌ์กฐ์ด๋ฉฐ ๋ฌธ์„œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ตœ์ƒ์œ„ ๊ฐ์ฒด๋Š” document ๊ฐ์ฒด์ด๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ html ํƒœ๊ทธ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

    ์›นํŽ˜์ด์ง€๊ฐ€ ๋กœ๋“œ๋  ๋•Œ, ์›น๋ธŒ๋ผ์šฐ์ €๋Š” ํŽ˜์ด์ง€์˜ DOM์„ ์ƒ์„ฑํ•˜๊ณ  ํŠธ๋ฆฌ๊ตฌ์กฐ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค. ๊ฐ ๊ฐ์ฒด๋ฅผ ๋…ธ๋“œ๋ผ๊ณ  ํ•œ๋‹ค. ์—˜๋ฆฌ๋จผํŠธ ๋…ธ๋“œ, ํ…์ŠคํŠธ ๋…ธ๋“œ, ์†์„ฑ ๋…ธ๋“œ๊ฐ€ ์žˆ๋‹ค.

     

     

    ๋…ธ๋“œ ์†์„ฑ๊ณผ ๋ฉ”์†Œ๋“œ

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

     

     

    ๋ถ€๋ชจ์™€ ์ž์‹๋…ธ๋“œ ๊ด€๊ณ„

     

     

    DOM ๊ฐ์ฒด์— ์ง์ ‘ ์ ‘๊ทผํ•˜๊ธฐ

    getElementById()

    - id ๊ฐ’์œผ๋กœ ์ ‘๊ทผํ•œ๋‹ค. document.getElementById( id๊ฐ’ )

    getElementsByTagName()

    - ํƒœ๊ทธ๋ช…์œผ๋กœ ์ ‘๊ทผํ•œ๋‹ค. document.getElementsByTagName( tag๋ช… )

    getElementsByClassName()

    - class ์†์„ฑ์œผ๋กœ ์ ‘๊ทผํ•œ๋‹ค. document.getElementsByClassName( class๋ช… )

    querySelector(), querySelectorAll()

    - CSS selector๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. document.querySelectorAll(selector);

    - qureySelector๋Š” ์—ฌ๋Ÿฌ๊ฐœ์˜ ๊ฐ์ฒด๋“ค ์ค‘ ์ฒซ๋ฒˆ์งธ ๊ฐ์ฒด ํ•˜๋‚˜๋งŒ ๊ฐ€์ ธ์˜จ๋‹ค. ๋”ฐ๋ผ์„œ ์—ฌ๋Ÿฌ๊ฐœ์˜ ๊ฐ์ฒด๋ฅผ ์„ ํƒํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด querySelectAll์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

     

     

    ๋…ธ๋“œ ์›Œํ‚น ์ ‘๊ทผ ๋ฐฉ๋ฒ•

    ์ƒ๋Œ€์ ์ธ ์œ„์น˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ DOM ๊ฐ์ฒด์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ๋ฐ”๋””๋ฅผ ๊ธฐ์ค€์œผ๋กœ h1์ด ์ฒซ๋ฒˆ์งธ ์ž์‹, p๊ฐ€ ๋งˆ์ง€๋ง‰ ์ž์‹์ด๋‹ค. ์ž์‹ ๋…ธ๋“œ ์‚ฌ์ด์—์„  ์•ž์—์žˆ๋Š” ๋…ธ๋“œ๋ฅผ nextSibling, ๋’ค์— ์žˆ๋Š” ๋…ธ๋“œ๋ฅผ previousSibling์œผ๋กœ ๋ถ€๋ฅธ๋‹ค.

     

     

    innerText

    <body>
        <div>
            <div id="x">ํ™๊ธธ๋™</div>
        </div>
        <script type="text/javascript">
    
            var div = document.getElementById("x");
            console.log(div);
    
            var s = div.innerText;
            console.log(s);
            console.log(s.length);
            console.log(s.charAt(0));
    
        </script>
    </body>

    id๊ฐ€ x์ธ ํƒœ๊ทธ๋ฅผ ์„ ํƒํ•ด์„œ div๋ผ๋Š” ๋ณ€์ˆ˜์ด๋ฆ„์„ ๋ถ™์˜€๋‹ค. div๋ฅผ ์ฝ˜์†”์— ์ถœ๋ ฅํ•ด๋ณด๋ฉด <div id="x">ํ™๊ธธ๋™</div> ๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค. .innerText ๋Š” ํƒœ๊ทธ ์•ˆ์˜ ํ…์ŠคํŠธ๋งŒ ๊ฐ€์ ธ์˜จ๋‹ค. ๋”ฐ๋ผ์„œ console.log(s);๋Š” ํ™๊ธธ๋™์„ ์ถœ๋ ฅํ•œ๋‹ค.

     

     

    input.value

    <body>
        ์ด๋ฆ„:<input type="text" name="username" id="username">
        <a href="javascript:mesg()">์ž…๋ ฅ๊ฐ’ ์–ป๊ธฐ</a>
        <script type="text/javascript">
    
            function mesg(){
                var n = document.getElementById("username");
                console.log(n);
                var s = n.value;
                console.log(s);
    
            }
        </script>
    </body>

    ์ธํ’‹ ์ƒ์ž ์•ˆ์— ์ž…๋ ฅํ•œ ๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ ๋• value๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. ์ธํ’‹์˜ ์†์„ฑ์— value="" ์ฒ˜๋Ÿผ ๋นˆ ์ŠคํŠธ๋ง์„ ์‚ฌ์šฉํ•ด value๋ฅผ ๋ช…์‹œํ•ด์ค˜๋„ ์ƒ๊ด€์—†๋‹ค.

    aํƒœ๊ทธ href ์†์„ฑ์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค. <a href="javascript:ํ•จ์ˆ˜๋ช…()"></a> ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜๋Š” ๋ฆฌํ„ด๊ฐ’์ด ์กด์žฌํ•˜๋ฉด ์•ˆ๋œ๋‹ค.

     

     

    DOM์ด ๋ชจ๋‘ ๋กœ๋”ฉ๋˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ธฐ

    ํ—ค๋”์— ํฌํ•จ๋œ ์Šคํฌ๋ฆฝํŠธ์™€ ์™ธ๋ถ€ ํŒŒ์ผ์—์„œ ๋ถˆ๋Ÿฌ์˜จ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” HTML DOM์ด ์‹ค์ œ๋กœ ์ƒ์„ฑ๋˜๊ธฐ ์ „์— ์‹คํ–‰๋œ๋‹ค. ๋”ฐ๋ผ์„œ ํ—ค๋”๋‚˜ ์™ธ๋ถ€ํŒŒ์ผ์—์„œ ์‹คํ–‰๋œ ๋ชจ๋“  ์Šคํฌ๋ฆฝํŠธ๋Š” DOM์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค.

    ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

    1. ํŽ˜์ด์ง€๊ฐ€ ์™„์ „ํžˆ ๋กœ๋”ฉ๋˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ธฐ

    window.onload = init;

    2. body ํƒœ๊ทธ ๋งจ ๋์— ์Šคํฌ๋ฆฝํŠธ ์ถ”๊ฐ€ํ•˜๊ธฐ

    <script type="text/javascript">…</script></body>

     

     

     

    ๐Ÿ˜œ NEXT : ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋ง ๊ณต๋ถ€ํ•˜๊ธฐ

    ๋ฐ˜์‘ํ˜•

    ๋Œ“๊ธ€

๊ฐœ๋ฐœ๊ณต๋ถ€