๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

JavaScript

[JavaScript] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ด๋ฒคํŠธํ•ธ๋“ค๋Ÿฌ

728x90

 

 

 

 

 


 

JSON ํ˜•๋ณ€ํ™˜

 

 

๐Ÿ™‹‍โ™€๏ธ : ๋„ˆ๋Š” JSON์ด ๋ญ”์ง€ ์•Œ์•„?

๐Ÿ‘ฉ‍๐Ÿ’ป : ๋‹น์—ฐํ•˜์ง€! ์ปดํ“จํ„ฐ์™€ ์›น ์„œ๋ฒ„ ๊ฐ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌ ๋ฐ›์„ ๋•Œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด๋ฅผ

         JSONํ˜•์‹์œผ๋กœ ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊พธ์–ด์ฃผ๋Š” ๊ฑธ ๋งํ•ด

JSON  โžก๏ธ  ๋ฌธ์ž์—ด

   JSON.stringify (data);

๋ฌธ์ž์—ด  โžก๏ธ  JSON

    JSON.parse (๋ฌธ์ž์—ด);         โญ key, value๊ฐ€ ๋ชจ๋‘ (" ")๋กœ ๋ฌถ์—ฌ์•ผ ํ•œ๋‹ค (๋ฐ˜.๋“œ.์‹œ)

 

 

 <script>
        var data = [
            {id: 'aaa123', title: 'aaa', content: 'a...'},
            {id: 'bbb123', title: 'bbb', content: 'b...'},
            {id: 'ccc123', title: 'ccc', content: 'c...'},  // ๋งˆ์ง€๋ง‰์— ์ฝค๋งˆ ์žˆ์–ด๋„ ํ—ˆ์šฉ๋จ

        ];

        // console.log(data);
        //JS๊ฐ์ฒด๋ฅผ JSON๋ฌธ์ž์—ด๋กœ ํ˜•๋ณ€ํ™˜
        var str = JSON.stringify(data);
        console.log(str);

        //JSON๋ฌธ์ž์—ด์„ JS๊ฐ์ฒด๋กœ ํ˜•๋ณ€ํ™˜
        var obj = JSON.parse(str);
        console.log(obj);
</script>

์ฝ”๋“œ์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ

 

โญ ๋ฌธ์ž์—ด์„ ๊ฐ์ฒด๋กœ ๋ณ€๊ฒฝํ•  ๋•Œ ๋ฐ˜๋“œ์‹œ ์ง€์ผœ์•ผ ํ•  ๊ทœ์น™์ด ์žˆ๋‹ค

JSON.parse("{id: 'aaa123'}");

 

 

โš ๏ธ key์™€ value๊ฐ’์„ ( " " )๋กœ ๋ฌถ์ง€ ์•Š๋Š”๋‹ค๋ฉด ์œ„์™€ ๊ฐ™์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋‹ˆ ๋ฐ˜๋“œ์‹œ ๊ทœ์น™์„ ์ง€์ผœ์•ผ ํ•œ๋‹ค

 

//๋‹จ, ๋ฌธ์ž์—ด์„ ๊ฐ์ฒด๋กœ ๋ณ€๊ฒฝํ•  ๋•Œ ์—„๊ฒฉํ•œ ๊ทœ์น™ ์žˆ์Œ
        //key์™€ value๋ฅผ ์Œ๋”ฐ์˜ดํ‘œ๋กœ ๊ฐ์‹ธ๊ณ  ์žˆ์–ด์•ผ ํ•จํ•จ
        var result = JSON.parse('{"id": "aaa123"}');
        console.log(result);

 

 

 

 

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ

 

์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ

์ด๋ฒคํŠธ๋Š” ํ™”๋ฉด์—์„œ ํด๋ฆญ์ด๋‚˜ ๋™์ž‘์‹œ ๋ฐœ์ƒํ•˜๋Š” ๋™์ ์ธ ๊ธฐ๋Šฅ์„ ๋งํ•œ๋‹ค (์‚ฌ์šฉ์ž์˜ ๋™์ž‘)

 

ํƒœ๊ทธ์™€ ์Šคํฌ๋ฆฝํŠธ์˜ ์ด๋ฒคํŠธ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ์‹

1๏ธโƒฃ ์ธ๋ผ์ธ ์ด๋ฒคํŠธ ๋ชจ๋ธ

2๏ธโƒฃ ๊ธฐ๋ณธ ์ด๋ฒคํŠธ ๋ชจ๋ธ

3๏ธโƒฃ ํ‘œ์ค€ ์ด๋ฒคํŠธ ๋ชจ๋ธ

 

์ด๋ฒคํŠธ ์ข…๋ฅ˜ ์„ค๋ช…
click  ๋งˆ์šฐ์Šค ํด๋ฆญํ–ˆ์„ ๋•Œ ์ด๋ฒคํŠธ ๋ฐœ์ƒ
dbclick ๋งˆ์šฐ์Šค๋ฅผ ๋”๋ธ” ํด๋ฆญํ–ˆ์„ ๋•Œ ์ด๋ฒคํŠธ ๋ฐœ์ƒ
mouseover ๋งˆ์šฐ์Šค๋ฅผ ์˜ค๋ฒ„ํ–ˆ์„ ๋•Œ ์ด๋ฒคํŠธ ๋ฐœ์ƒ
mouserout ๋งˆ์šฐ์Šค๋ฅผ ์•„์›ƒํ–ˆ์„ ๋–„ ์ด๋ฒคํŠธ ๋ฐœ์ƒ
mousedown ๋งˆ์šฐ์Šค๋ฅผ ๋ˆŒ๋ €์„ ๋•Œ ์ด๋ฒคํŠธ ๋ฐœ์ƒ
mouseup ๋งˆ์šฐ์Šค๋ฅผ ๋–ผ์—ˆ์„ ๋•Œ ์ด๋ฒคํŠธ ๋ฐœ์ƒ
mousermove ๋งˆ์šฐ์Šค๋ฅผ ์›€์ง์˜€์„ ๋•Œ ์ด๋ฒคํŠธ ๋ฐœ์ƒ
keydown ํ‚ค๋ฅผ ๋ˆŒ๋ €์„ ๋•Œ ์ด๋ฒคํŠธ ๋ฐœ์ƒ
keyup ํ‚ค๋ฅผ ๋–ผ์—ˆ์„ ๋•Œ ์ด๋ฒคํŠธ ๋ฐœ์ƒ
keypress ํ‚ค๋ฅผ ๋ˆ„๋ฅธ ์ƒํƒœ์—์„œ ์ด๋ฒคํŠธ ๋ฐœ์ƒ
focus ํฌ์ปค์Šค๊ฐ€ ์ด๋™๋˜์—ˆ์„ ๋•Œ ์ด๋ฒคํŠธ ๋ฐœ์ƒ
blur ํฌ์ปค์Šค๊ฐ€ ๋ฒ—์–ด๋‚ฌ์„ ๋•Œ ์ด๋ฒคํŠธ ๋ฐœ์ƒ
change ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๋•Œ ์ด๋ฒคํŠธ ๋ฐœ์ƒ
submit submit ๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์„ ๋Œ€ ์ด๋ฒคํŠธ ๋ฐœ์ƒ
reset reset ๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์„ ๋•Œ ์ด๋ฒคํŠธ ๋ฐœ์ƒ
select input, textarea ์š”์†Œ ํ…์ŠคํŠธ๋ฅผ ๋“œ๋ž˜๊ทธํ•ด์„œ ์„ ํƒํ–ˆ์„ ๋•Œ ์ด๋ฒคํŠธ ๋ฐœ์ƒ
load ๋กœ๋”ฉ์ด ์™„๋ฃŒ๋˜์—ˆ์„ ๋•Œ ์ด๋ฒคํŠธ ๋ฐœ์ƒ
abort ์ด๋ฏธ์ง€์˜ ๋กœ๋”ฉ์ด ์ค‘๋‹จ๋˜์—ˆ์„ ๋•Œ ์ด๋ฒคํŠธ ๋ฐœ์ƒ
resize ์‚ฌ์ด์ฆˆ๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๋•Œ ์ด๋ฒคํŠธ ๋ฐœ์ƒ
scroll ์Šคํฌ๋กค๋ฐ”๋ฅผ ์›€์ง์˜€์„ ๋•Œ ์ด๋ฒคํŠธ ๋ฐœ์ƒ

 

์ธ๋ผ์ธ ์ด๋ฒคํŠธ ๋ชจ๋ธ

 

์ธ๋ผ์ธ ์ด๋ฒคํŠธ ๋ชจ๋ธ์€ html์š”์†Œ(ํƒœ๊ทธ)์— ์ง์ ‘ ์ด๋ฒคํŠธ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค

onclick๊ฐ™์€ ์ด๋ฒคํŠธ ์•ˆ์—๋Š” ๋ชจ๋“  ์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๊ฐ€ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค

< button onclick = "console.log('์ถœ๋ ฅ')">

 

์ธ๋ผ์ธ ์ด๋ฒคํŠธ ๋ชจ๋ธ์˜ ํŠน์ง•

  1. onclick์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ์ด๋ฒคํŠธ์ด๋‹ค

  2. ๋™์ผํ•œ ํ•จ์ˆ˜์— ์—ฌ๋Ÿฌ ์ด๋ฒคํŠธ๋ฅผ ๊ฑธ์–ด์ค„ ์ˆ˜ ์žˆ๋‹ค

  3. ์–ด๋–ค ์ด๋ฒคํŠธ์— ๋Œ€ํ•œ ๋™์ž‘์ธ์ง€ ํ™•์ธํ•˜๋Š” ํ‚ค์›Œ๋“œ๋Š” this์ด๋‹ค

 

   <button onclick="check (  )"> ์ธ๋ผ์ธ ์ด๋ฒคํŠธ </button>

    <script>
          function check (  ) {       // ์„ ์–ธ์  ํ•จ์ˆ˜
          alert ( "์ธ๋ผ์ธ ์ด๋ฒคํŠธ" );
    </script>

 

   <button onclick= "aaa();">์ธ๋ผ์ธ ์ด๋ฒคํŠธ</button> <!--ํƒœ๊ทธ์— ์ด๋ฒคํŠธ ์ž‘์„ฑ = ์ธ๋ผ์ธ ์ด๋ฒคํŠธ -->
    <button onclick= "bbb(this);">1</button>  <!-- ํ™”๋ฉด ์ƒ์— ๋ณด์ด๋Š” ๊ฑด 1๋กœ ํ‘œ์‹œ ๊ทผ๋ฐ ์ด์ œ ํด๋ฆญ์„ ํ•˜๊ฒŒ ๋˜๋ฉด hello๋กœ ๋ฐ”๋€ ํƒœ๊ทธ ์ž์‹ ์ด ์ฝ˜์†”์ฐฝ์— ์ถœ๋ ฅ-->
    <button onclick= "bbb(this);">2</button>
    <button onclick= "bbb(this);">3</button>
    


    <script>
        // ์ธ๋ผ์ธ ์ด๋ฒคํŠธ - ํ•จ์ˆ˜์˜ ์„ ์–ธ์€ script์— ํ•˜๊ณ , ํƒœ๊ทธ์—์„œ ์—ฐ๊ฒฐ
        // ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ•จ์ˆ˜ ์—ฐ๊ฒฐ ๊ฐ€๋Šฅ
        function aaa(){
            alert(1);
        }

        function bbb(a) {
            // this๊ฐ€ ํƒœ๊ทธ์—์„œ ์‚ฌ์šฉ๋˜๋ฉด ํƒœ๊ทธ ์ž๊ธฐ ์ž์‹ ์„ ๊ฐ€๋ฆฌํ‚จ๋‹ค
            console.log(a); // a๋Š” ํƒœ๊ทธ ์ž์‹ 
            a.innerHTML = 'hello';
        }
    </script>

 

 

์œ„์˜ ์ฝ”๋“œ ๊ฒฐ๊ณผ์ฐฝ

 

 

 

 

 

๊ธฐ๋ณธ ์ด๋ฒคํŠธ ๋ชจ๋ธ

๊ธฐ๋ณธ ์ด๋ฒคํŠธ ๋ชจ๋ธ์€ HTML์š”์†Œ(ํƒœ๊ทธ)๋ฅผ ์ทจ๋“ํ•œ ํ›„ ์ด๋ฒคํŠธ๋ฅผ ์ต๋ช…ํ•จ์ˆ˜๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค

HTML์š”์†Œ๋ฅผ ์ทจ๋“ํ•  ๋•Œ๋Š” ์ˆœ์„œ์ƒ "์ทจ๋“ํ•  ์š”์†Œ"๊ฐ€ "์š”์†Œ ์ทจ๋“ ๋ช…๋ น์–ด"์ด์ „์— ์žˆ์–ด์•ผ ํ•œ๋‹ค

 

    <button id="bt"> ์ธ๋ผ์ธ์ด๋ฒคํŠธ </button>              //  ์ทจ๋“ํ•  ์š”์†Œ

    <script>
      var bt = document.getElementById("bt");            // ์š”์†Œ ์ทจ๋“ ๋ช…๋ น
      bt.onclick = function( ) {
         console.log("์ถœ๋ ฅ");
      } 
    </script>

 

   <!-- ๊ธฐ๋ณธ ์ด๋ฒคํŠธ๋Š” ์ธ๋ผ์ธ ์ด๋ฒคํŠธ์™€ ๋‹ค๋ฅด๊ฒŒ ํƒœ๊ทธ ์•ˆ์— ์ž‘์„ฑํ•˜์ง€ ์•Š๊ณ  ๋”ฐ๋กœ ๋นผ์„œ ์ž‘์„ฑ-->
   <!-- ์ต๋ช… ํ•จ์ˆ˜๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ์‹-->
    <button id="btn">๊ธฐ๋ณธ ์ด๋ฒคํŠธ</button>

    <script>

        //์ทจ๋“ํ•  ํƒœ๊ทธ๋ณด๋‹ค ์•„๋ž˜์— ์žˆ์–ด์•ผ ํ•œ๋‹ค

        var a= document.getElementById("btn");
        a.onclick = function(){
            console.log('๊ธฐ๋ณธ์ด๋ฒคํŠธ');
            console.log(this); // ํƒœ๊ทธ ์ž์‹ 
            console.log(a) // ํƒœ๊ทธ ์ž์‹ 
        }

    </script>

 

์œ„์˜ ์ฝ”๋“œ ๊ฒฐ๊ณผ์ฐฝ

 

 

 

โญ HTML์š”์†Œ๋ฅผ ์ทจ๋“ํ•  ๋•Œ๋Š” ์ˆœ์„œ์ƒ "์ทจ๋“ํ•  ์š”์†Œ"๊ฐ€ "์š”์†Œ ์ทจ๋“ ๋ช…๋ น์–ด" ์ดํ›„์— ์˜ค๋ฉด ๋ฐ˜๋“œ์‹œ load ์ด๋ฒคํŠธ๋ฅผ

       ์ ์šฉํ•ด์•ผ ํ•œ๋‹ค

 

      <script>
     window.onload = function(  ) {                               // ์š”์†Œ ์ทจ๋“ ๋ช…๋ น
      var bt = document.getElementById("bt");         
      bt.onclick = function( ) {
         console.log("์ถœ๋ ฅ");
       } 
    }
      </script>
     <button id = "bt"> ์ธ๋ผ์ธ ์ด๋ฒคํŠธ </button>        // ์ทจ๋“ํ•  ์š”์†Œ

 

    <script>

        //ํ™”๋ฉด ๋กœ๋”ฉ์ด ์™„๋ฃŒ๋œ ์ดํ›„์— ์‹คํ–‰ - onload๋Š” ํ™”๋ฉด๋ณ„๋กœ 1๊ฐœ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค
        window.onload = function() {

        var a = document.getElementById("btn");
        a.onclick = function(){
            console.log(a);
        }
    }
    </script>

    <button id="btn">๊ธฐ๋ณธ ์ด๋ฒคํŠธ</button>

 

์œ„์˜ ์ฝ”๋“œ ๊ฒฐ๊ณผ์ฐฝ

 

 

 

 

  ํ‘œ์ค€ ์ด๋ฒคํŠธ ๋ชจ๋ธ

  ํ‘œ์ค€ ์ด๋ฒคํŠธ ๋ชจ๋ธ์€ ๊ฐ์ฒด.addEventListener(์ด๋ฒคํŠธ, ํ•จ์ˆ˜) ๋ฐฉ์‹์œผ๋กœ ์—ฐ๊ฒฐํ•œ๋‹ค

 

<script>
   window.onload = function ( ) {
      var bt = document.getElementById("bt");       // ์ทจ๋“ํ•  ์š”์†Œ
      function view ( ) {
          console.log("์ถœ๋ ฅ");
     }
     bt.addEventListener('click', view);            // ์ด๋ฒคํŠธ์— on์„ ๋ถ™์ด์ง€ ์•Š๋Š”๋‹ค
  }
</script>

 <button id="bt">์ธ๋ผ์ธ์ด๋ฒคํŠธ</button>

 

  <button id="btn">ํ‘œ์ค€ ์ด๋ฒคํŠธ</button>
    

    <script>

        //ํ‘œ์ค€์ด๋ฒคํŠธ๋Š” ๋™์ผํ•œ ์ด๋ฒคํŠธ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
        //๊ฐ์ฒด.addEventListner(์ด๋ฒคํŠธ, ํ•จ์ˆ˜)
        var btn = document.getElementById("btn");
        btn.addEventListener("click", function() {
            console.log("ํ‘œ์ค€์ด๋ฒคํŠธ");
        });


        //์ฒซ๋ฒˆ์งธ ๋ฐฉ๋ฒ•
        // function aaa(){
        //     console.log("ํ‘œ์ค€์ด๋ฒคํŠธ");
        // }


    </script>

 

 

 


 

  <button id="btn">ํ‘œ์ค€ ์ด๋ฒคํŠธ</button>
    

    <script>

        //ํ‘œ์ค€์ด๋ฒคํŠธ๋Š” ๋™์ผํ•œ ์ด๋ฒคํŠธ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
        //๊ฐ์ฒด.addEventListner(์ด๋ฒคํŠธ, ํ•จ์ˆ˜)
        var btn = document.getElementById("btn");
        btn.addEventListener("click", function() {
            console.log("ํ‘œ์ค€์ด๋ฒคํŠธ");
        });


        btn.addEventListener("click", function() {
            console.log("ํ‘œ์ค€์ด๋ฒคํŠธ2");
        });

    </script>

 

์œ„์˜ ์ฝ”๋“œ ๊ฒฐ๊ณผ์ฐฝ

 

 

 

this ์—ฐ์‚ฐ์ž์— ๋Œ€ํ•ด์„œ ์ œ๋Œ€๋กœ ์•Œ๊ณ  ์žˆ๋‚˜์š”?  ์ €๋Š” ์ž˜ ๋ชจ๋ฆ…๋‹ˆ๋‹ค..ใ…Ž

 

ํ•จ์ˆ˜์—์„œ์˜ this

    <h3> this์˜ ์˜๋ฏธ </h3>

    <button id="btn">์ด๋ฒคํŠธ์—์„œ์˜ this</button>
    
    <script>
    
        // ํ•จ์ˆ˜์—์„œ์˜ this -> window๋ผ๋Š” ์ตœ์ƒ์œ„ ๊ฐ์ฒด
        // ์ด๋ฒคํŠธ์—์„œ์˜ this -> ํƒœ๊ทธ์ž์‹ 

        var a = 1; // ์ „์—ญ๋ณ€์ˆ˜ a๋Š” window์— ์„ ์–ธ๋จ

        function aaa(){
            var a = 10; // ์ง€์—ญ๋ณ€์ˆ˜
            console.log(a); // ์ง€์—ญ๋ณ€์ˆ˜์— ์ ‘๊ทผ
            console.log(this); // window
            console.log(this.a); // ์ „์—ญ๋ณ€์ˆ˜์— ์ ‘๊ทผ 
        }
        aaa();

    </script>

 

ํ•จ์ˆ˜์—์„œ this๋ผ๋Š” ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด window ์ตœ์ƒ์œ„ ๊ฐ์ฒด๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ถˆ๋ ค ๋‚˜์˜จ๋‹ค

ํ•จ์ˆ˜ ๋‚ด์—์„œ this ๊ทธ ์ž์ฒด๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด window ๊ฐ์ฒด๊ฐ€ ์ถœ๋ ฅ๋˜๊ณ  this์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ด ๋ณ€์ˆ˜ a๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค๋ฉด,

window์— ์žˆ๋Š” ๋ณ€์ˆ˜ a๊ฐ€ ๋ถˆ๋ ค ๋‚˜์˜จ๋‹ค (ํ•จ์ˆ˜ ๋‚ด์— ์žˆ๋Š” ์ง€์—ญ๋ณ€์ˆ˜ a๊ฐ€ ์•„๋‹Œ)

 

 

event์—์„œ์˜ this

	<h3> this์˜ ์˜๋ฏธ </h3>

	<button id="btn">์ด๋ฒคํŠธ์—์„œ์˜ this</button>

	<script>

  	  //์ด๋ฒคํŠธ์—์„œ์˜ this
  	  var btn = document.getElementById("btn");
   	 btn.addEventListener("click", function(){
   	 console.log(this); // ํƒœ๊ทธ ์ž๊ธฐ์ž์‹ 
	  })
    
	</script>

 

์ด๋ฒคํŠธ์—์„œ this๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด window ๊ฐ์ฒด๊ฐ€ ์•„๋‹Œ ํƒœ๊ทธ ์ž๊ธฐ ์ž์‹ ์ด ๋ถˆ๋ ค ๋‚˜์˜จ๋‹ค

๋ฒ„ํŠผ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ function์ด ์‹คํ–‰๋˜๋Š” ์ด ๋•Œ this๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฒƒ์€ ๊ฒฐ๊ตญ ๋ฒ„ํŠผ(ํƒœ๊ทธ) ์ž์‹ ์ด๋ผ๋Š” ๋ง์ด๋‹ค


https://onev.tistory.com/64

 

[JavaScript] this ์—ฐ์‚ฐ์ž ์ •๋ณตํ•ด๋ณด์ž

this ์—ฐ์‚ฐ์ž this๊ฐ€ ์–ด๋Š ๋ฌธ๋งฅ์— ์žˆ๋Š๋ƒ์— ๋”ฐ๋ผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐ’์ด ๋‹ค๋ฅด๊ฒŒ ๋‚˜ํƒ€๋‚œ๋‹ค ์ „์—ญ๋ฌธ๋งฅ ์ „์—ญ ์‹คํ–‰ ๋งฅ๋ฝ์—์„œ this๋Š” ์ „์—ญ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•œ๋‹ค // ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” window ๊ฐ์ฒด๊ฐ€ ์ „์—ญ ๊ฐ์ฒด console.log(thi

onev.tistory.com

this ์—ฐ์‚ฐ์ž ์ •๋ณตํ•˜์ฆˆ์•„์•„์•„

 


BOM & DOM

  Browser Object Model       vs      Document Object Model

 

     BOM์€ ๋ธŒ๋ผ์šฐ์ € ๊ฐ์ฒด ๋ชจ๋ธ์ด๋ผ ํ•˜๋ฉฐ, ๋‚ด์žฅ๊ฐ์ฒด๋“ค์„ ์˜๋ฏธํ•œ๋‹ค

      window, location, history, document ๋“ฑ ํฌํ•จ

 

     DOM์€ ๋ฌธ์„œ ๊ฐ์ฒด ๋ชจ๋ธ์ด๋ผ ํ•˜๋ฉฐ, document๊ฐ์ฒด๋ฅผ ์˜๋ฏธํ•œ๋‹ค

     DOM์€ ์š”์†Œ(element)์˜ ์„ ํƒ, ์‚ญ์ œ, ์ƒ์„ฑ ๋“ฑ์„ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค

 

 

 

Element(ํƒœ๊ทธ) ์„ ํƒ

 

  ๐Ÿ‘‰ id, name, className ๋“ฑ ๋ชจ๋‘ ๋ฌธ์ž์—ด์ด๊ธฐ ๋•Œ๋ฌธ์— ์Œ๋”ฐ์˜ดํ‘œ๋กœ ๋ฌถ์–ด์ค˜์•ผ ํ•œ๋‹ค 

 

 

๋ฉ”์„œ๋“œ ์„ค๋ช…
getElementById("xx") ์š”์†Œ์˜ id๊ฐ€ xx์ธ ํƒœ๊ทธ๋ฅผ ์„ ํƒ
getElementByName("xx") ์š”์†Œ์˜ name์ด xx์ธ ํƒœ๊ทธ๋ฅผ ์ „๋ถ€ ์„ ํƒ
getElementByClassName("xx") ์š”์†Œ์˜ class๊ฐ€ xx์ธ ํƒœ๊ทธ๋ฅผ ์ „๋ถ€ ์„ ํƒ
getElementByTagName("xx") ์š”์†Œ์˜ tag๋ช…์ด xx์ธ ํƒœ๊ทธ๋ฅผ ์ „๋ถ€ ์„ ํƒ
querySelector(  ) ์š”์†Œ ์„ ํƒ ๋ฐฉ๋ฒ•์ด css์™€ ๋™์ผ(์ฒซ๋ฒˆ์งธ ์š”์†Œ๋งŒ ์„ ํƒ)
querySelectorAll(  ) ์š”์†Œ ์„ ํƒ ๋ฐฉ๋ฒ•์ด css์™€ ๋™์ผ(๋ชจ๋“  ํƒœ๊ทธ ์„ ํƒ)

 

 

1๏ธโƒฃ getElementById (   )

    <button id="check1"> ์ฒดํฌ๋ฐ•์Šค์š”์†Œ ํ™•์ธ </button>

   <script>
       var check1 = document.getElementById("check1");
       check1.onclick = function(  ){
     
       }
   </script>

 

 

2๏ธโƒฃ getElementByName (   )

     <button id="check1"> ์ฒดํฌ๋ฐ•์Šค ์š”์†Œ ํ™•์ธ </button><br>

    <input type="checkbox" name="inter" value="1"> JAVA
   <input type="checkbox" name="inter" value="2"> JSP
   <input type="checkbox" name="inter" value="3"> JSX
   <input type="checkbox" name="inter" value="4"> SPRING

     <script>

      var check1 = document.getElementById("check1");
     check1.onclick = function(){

            var arr = document.getElementsByName("inter");  
            for ( var i = 0; i < arr.length; i++ ) {               // name์ด inter์ธ ์š”์†Œ๋ฅผ ๋ชจ๋‘ ์ทจ๋“ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฐ์—ด์— ๋‹ด๊น€
                console.log(arr[i]);
             }
       }
      </script>

 

 

3๏ธโƒฃ querySelector (   )

    <div class="box2">
        <ul>
            <li>์•ˆ๋…•</li>
            <li>ํ—ฌ๋กœ</li>
           <li>๋‹ˆํ•˜์˜ค</li>
       </ul>
    </div>

    <script>
          var test1 = document.querySelector (".box2 > ul > li");
          console.log(test1);
   </script>

 

4๏ธโƒฃ querySelectorAll (  )

    <div class="box2">
        <ul>
            <li>์•ˆ๋…•</li>
            <li>ํ—ฌ๋กœ</li>
           <li>๋‹ˆํ•˜์˜ค</li>
       </ul>
    </div>

    <script>
          var test2 = document.querySelectorAll (".box2 > ul > li");
          console.log(test2);
   </script>

 

 

ํƒœ๊ทธ ์„ ํƒ ์‹ค์Šตํ•ด๋ณด๊ธฐ

 

1๏ธโƒฃ getElementById & getElementByName 

 

 <button id="btn">๋ฒ„ํŠผ</button>

    <input type="checkbox" name="inter" value="1">java
    <input type="checkbox" name="inter" value="2">js
    <input type="checkbox" name="inter" value="3">css
    <input type="checkbox" name="inter" value="4">html


    <script>
        
        //element == node == ํƒœ๊ทธ (๋ชจ๋‘ ๊ฐ™์€ ๋ง)

        var btn = document.getElementById("btn");
        console.log(btn);

        var inter = document.getElementsByName("inter"); //name์ด inter์ธ ํƒœ๊ทธ (array)
        console.log(inter);
        

        btn.onclick = function(){  //๋ฒ„ํŠผ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ name์ด inter์ธ ํƒœ๊ทธ 4๊ฐœ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฐฉ๋ฒ•
            for(var i = 0; i < inter.length; i++){
                console.log(inter[i]);
            }
        }


    </script>

 

Document java js css html

 

์ฝ˜์†”์ฐฝ ๊ฒฐ๊ณผ

 

 

2๏ธโƒฃ getElementByclassName

 

    <hr>

    <button id="btn2">๋ฒ„ํŠผ</button>
    <input type="radio" name="aaa" class="hello" value="1"> ํ”„๋กœ๊ทธ๋žจ
    <input type="radio" name="aaa" class="hello" value="2"> ๋””์ž์ธ
    <input type="radio" name="aaa" class="hello" value="3"> ๋„คํŠธ์›Œํฌ
    <input type="radio" name="aaa" class="hello" value="4"> ๋ณด์•ˆ

    <script>
        var btn2 = document.getElementById("btn2");
        var hello = document.getElementsByClassName("hello"); //ํด๋ž˜์Šค ์ด๋ฆ„์ด "hello"์ธ ํƒœ๊ทธ  - ๋ฐ˜ํ™˜์ด ๋ฐฐ์—ด
        console.log(hello);

        btn2.onclick = function(){
            for(var i = 0; i < hello.length; i++){
                console.log(hello[i]);
            }
        }


    </script>

 

์ฝ˜์†”์ฐฝ ๊ฒฐ๊ณผ

 

 

3๏ธโƒฃ getElementByTagName

 

<hr>

    <button id="btn3">๋ฒ„ํŠผ</button>

    <ul id="bye">
        <li>๋ชฉ๋ก1</li>
        <li>๋ชฉ๋ก2</li>
        <li>๋ชฉ๋ก3</li>
    </ul>

    <ul>
        <li>๋ชฉ๋ก1</li>
        <li>๋ชฉ๋ก2</li>
        <li>๋ชฉ๋ก3</li>
    </ul>


    <script>

        var btn3 = document.getElementById("btn3");
        
        //document๋Š” ํƒ์ƒ‰์ด ๋ฌธ์„œ ์ „์ฒด์—์„œ ์ด๋ฃจ์–ด์ง
        var bye = document.getElementById("bye"); //id๊ฐ€ bye์ธ ํƒœ๊ทธ
        //ํƒ์ƒ‰์ด bye์—์„œ๋งŒ ์ด๋ฃจ์–ด์ง
        var li = bye.getElementsByTagName("li"); //bye์ธ ํƒœ๊ทธ์—์„œ ํƒ์ƒ‰
        console.log(li);

        btn3.onclick = function(){
            for(var i = 0; i < li.length; i++){
                console.log(li[i]);
            }
        }

    </script>

 

์ฝ˜์†”์ฐฝ ๊ฒฐ๊ณผ 

 

 

4๏ธโƒฃ querySelector & querySelectorAll ( CSS ์„ ํƒ์ž์ฒ˜๋Ÿผ ์‚ฌ์šฉ

 

    <button id="btn">์ฟผ๋ฆฌ์…€๋ ‰ํ„ฐํ™•์ธ</button>
    <ul class="box">
        <li>hi</li>
        <li>bye</li>
        <li>good afternoon</li>
    </ul>

    <script>
        var btn = document.querySelector("#btn"); // css์„ ํƒ์ž๋กœ ์–ป๊ธฐ
        console.log(btn); //ํƒœ๊ทธ ์ถœ๋ ฅ
        var li = document.querySelector(".box > li "); // liํƒœ๊ทธ๋ฅผ ์–ป๊ธฐ(๋‹จ์ผ)
        console.log(li); //liํƒœ๊ทธ ์ค‘ ์ฒซ๋ฒˆ์งธ ์š”์†Œ๋งŒ ์ถœ๋ ฅ(๋‹จ์ผ ์„ ํƒ)

        var lis = document.querySelectorAll(".box li");
        console.log(lis);

        btn.onclick = function(){
            for(var i =0; i < lis.length; i++){
                console.log(lis[i]);
            }
        }
    </script>

 

 

ํƒœ๊ทธ์˜ ์†์„ฑ ์ œ๊ณตํ•˜๊ธฐ 

  ํƒœ๊ทธ์˜ ์†์„ฑ์€  " . ์†์„ฑ๋ช… " ์œผ๋กœ ์ ‘๊ทผํ•œ๋‹ค

 ( ์™œ ์ ‘๊ทผํ•˜๋ ค๊ณ  ํ•ด? ์ ‘๊ทผํ•ด์„œ ํƒœ๊ทธ ์ž์ฒด๋ฅผ ๊ฐ€์ง€๊ณ  ์™€์•ผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด์ง€! )

 

 <h3>ํƒœ๊ทธ์˜ ์†์„ฑ ์ œ์–ดํ•˜๊ธฐ</h3>

    <input type="text" value="" id="input">
    <div class="msg"></div>

    <button type="button" id="btn">ํ™•์ธ</button>
    
    <script>

        //ํƒœ๊ทธ์˜ ์†์„ฑ์€ .์†์„ฑ๋ช… ์œผ๋กœ ์ ‘๊ทผํ•จ 
        //์ œ์–ดํ•˜๊ณ  ์‹ถ์œผ๋ฉด ํƒœ๊ทธ๋ฅผ ๊ฐ–๊ณ ์™€๋ผ
        document.getElementById("input");

        console.log(input.type); //type์†์„ฑ
        console.log(input.id); //id์†์„ฑ
        console.log(input.value); //value์†์„ฑ
        console.log(input.required); //required์†์„ฑ (true/false)
        console.log(input.checked); //checked ์†์„ฑ(true/false)
        input.value = "๋ณ€๊ฒฝ";

        })


    </script>

 

 

ํƒœ๊ทธ์˜ ์‚ฌ์ž‡๊ฐ’ - innerHTML

 

   <input type="text" value="" id="input">
   <div class="msg"></div>

   <button type="button" id="btn">ํ™•์ธ</button>

   <script>

    //ํƒœ๊ทธ์˜ ์‚ฌ์ž‡๊ฐ’์„ HTMLํ˜•์‹์œผ๋กœ ์–ป์Œ innerHTML
     var btn = document.getElementById("btn");
     console.log(btn.innerHTML);  // "ํ™•์ธ" ์ถœ๋ ฅ
        
    //๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ value๋ฅผ ๊ฐ€์ง€๊ณ ์™€์„œ msg ํƒœ๊ทธ ์‚ฌ์ด์— ์ถœ๋ ฅ
     btn.addEventListener("click", function(){
     var a = input.value; 
     var msg = document.querySelector(".msg");
     msg.innerHTML= a;

    </script>

 

"ํ™•์ธ" ๋ฒ„ํŠผ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ  input ํƒœ๊ทธ์˜ value๊ฐ’์„ ๋ณ€์ˆ˜ a์— ์ €์žฅํ•˜๊ณ  , querySelector๋กœ ํด๋ž˜์Šค ์ด๋ฆ„์ด

"msg"์ธ ํƒœ๊ทธ๋ฅผ ๋ณ€์ˆ˜ msg์— ์ €์žฅํ•œ ๋‹ค์Œ msg ํƒœ๊ทธ์˜ ์‚ฌ์ž‡๊ฐ’์— ๋ณ€์ˆ˜ a(input ํƒœ๊ทธ์˜ value)๋ฅผ ์ €์žฅํ•œ๋‹ค   

 

 

 

 

๋…ธ๋“œ CSS ๋ณ€๊ฒฝํ•˜๊ธฐ

 1๏ธโƒฃ ๋…ธ๋“œ์˜ css์†์„ฑ์„ ๋ฐ”๊ฟ€ ๋•Œ๋Š” style์†์„ฑ์„ ์ด์šฉํ•œ๋‹ค

 2๏ธโƒฃ css์˜ ์†์„ฑ์€ ์นด๋ฉœํ‘œ๊ธฐ๋ฒ•์„ ๋”ฐ๋ฅธ๋‹ค

 3๏ธโƒฃ ๋…ธ๋“œ์˜ style์— ์ „๋‹ฌ๋˜๋Š” ๊ฐ’์€ ๋ฌธ์ž์—ด๋กœ ์ž‘์„ฑํ•œ๋‹ค

 

  ๐Ÿ‘ฉ‍๐Ÿ’ป ๊ทœ์น™ : ๋…ธ๋“œ.style.css์†์„ฑ = ๊ฐ’

 

   <ul class="box">
        <li>๋ชฉ๋ก1</li>
        <li>๋ชฉ๋ก2</li>
        <li>๋ชฉ๋ก3</li>
    </ul>

    <button id="btn">css์†์„ฑ๋ณ€๊ฒฝํ•˜๊ธฐ</button>

    <script>
        var li = document.querySelector(".box li");
        var btn = document.getElementById("btn");
        btn.onclick = function() {
            li.style.backgroundColor = "pink";
            li.style.color = "white";
        }


    </script>

 

 

 


๋Œ€ํ™˜์žฅ ์‹ค์Šต ํŒŒํ‹ฐ๐ŸŽ‰

 

   <select id="ch">
        <option>1</option>
        <option>2</option>
        <option>3</option>
    </select>

    <!-- <input type="text" id="value"> ๊ธฐ๋ณธ ์ด๋ฒคํŠธ -->
    <input type="text" onchange="aaa();">  <!--์ธ๋ผ์ธ ์ด๋ฒคํŠธ-->

    <div id="db">dbํด๋ฆญ์ด๋ฒคํŠธ</div>

    <script>
        // 1.์œ„์— ์žˆ๋Š” select์™€ input์— ์—ฌ๋Ÿฌ๋ถ„์ด ์›ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ change ๊ฑธ์–ด๋ณด๊ธฐ 
        // 2. div์—๋Š” dbclick์ด๋ฒคํŠธ๋„ ๊ฑธ์–ด๋ณด๊ธฐ
   
        //1๋ฒˆ ๋ฌธ์ œ
        var c = document.getElementById("ch");
        ch.onchange = function(){
            console.log("์˜ต์…˜ ์„ ํƒ ์™„");
        }

        // var a = document.getElementById("value");
        // a.onchange = function(){
        //     console.log("๊ฐ’์ด ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค");
        // }

        function aaa() {
            console.log("์ฒด์ธ์ง€์ด๋ฒคํŠธ");
        }

        //2๋ฒˆ ๋ฌธ์ œ
        var d = document.getElementById("db");
        d.addEventListener("dblclick", function(){   //๋”๋ธ” ํด๋ฆญ ์ด๋ฒคํŠธ๋ช…: dblclick
            console.log("๋”๋ธ”ํด๋ฆญ");
        });
        
   
     </script>

 

Document
dbํด๋ฆญ์ด๋ฒคํŠธ

 

 

 

 

๐Ÿ‘ฉ‍๐Ÿ’ป ์‚ฌ์šฉ์ž๊ฐ€ ํ™•์ธ๋ฒ„ํŠผ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ, input ํƒœ๊ทธ์˜ ๊ณต๋ฐฑ์—ฌ๋ถ€์™€ ์ฒดํฌ๋ฐ•์Šค์˜ ์ฒดํฌ์—ฌ๋ถ€ ํ™•์ธํ•˜๊ธฐ

     

 <h3>์‚ฌ์šฉ์ž๊ฐ€ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด, input ํƒœ๊ทธ์˜ ๊ณต๋ฐฑ์—ฌ๋ถ€, ์ฒดํฌ๋ฐ•์Šค์˜ ์ฒดํฌ์—ฌ๋ถ€</h3>
    
    ์•„์ด๋””: <input type="input" id="id" value="" >
    ๊ธฐ์–ตํ•˜๊ธฐ: <input type="checkbox" class="remember">
    <button id="btn">ํ™•์ธ</button>
  
    <script>

        var btn = document.getElementById("btn");
        var id = document.getElementById("id");

        btn.onclick = function(){

            if(id.value == ""){
                alert("์•„์ด๋”” ์ž…๋ ฅํ•ด๋ผ");
            }else{
                alert("์ •์ƒ์ ์œผ๋กœ ์ž…๋ ฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค");
            }
           
            var ch = document.querySelector(".remember");

            if(ch.checked == true){
                alert("๊ธฐ์–ต ์™„๋ฃŒ")
            }else{
                alert("๊ธฐ์–ตํ•˜๊ธฐ ์‹ซ์€๋””~~")
            }

        }

    </script>

 

Document

์‚ฌ์šฉ์ž๊ฐ€ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด, input ํƒœ๊ทธ์˜ ๊ณต๋ฐฑ์—ฌ๋ถ€, ์ฒดํฌ๋ฐ•์Šค์˜ ์ฒดํฌ์—ฌ๋ถ€

์•„์ด๋””: ๊ธฐ์–ตํ•˜๊ธฐ:

์ธ๋ผ์ธ ์ด๋ฒคํŠธ - ์‚ฌ์šฉ์ž๊ฐ€ ์ฒดํฌ๋ฐ•์Šค๋ฅผ ํด๋ฆญํ•  ๋•Œ๋งˆ๋‹ค ๊ฒฝ๊ณ ์ฐฝ์— value๊ฐ’์„ ๋„์›Œ์ฃผ๊ธฐ

์กฐํ•ญ1 ์กฐํ•ญ2 ์กฐํ•ญ3

 

 

๐Ÿ‘ฉ‍๐Ÿ’ป ์ธ๋ผ์ธ ์ด๋ฒคํŠธ๋ฅผ ์ด์šฉํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ์ฒดํฌ๋ฐ•์Šค๋ฅผ ํด๋ฆญํ•  ๋•Œ๋งˆ๋‹ค ๊ฒฝ๊ณ ์ฐฝ์— value๊ฐ’ ์ถœ๋ ฅ

 

    <h3>์ธ๋ผ์ธ ์ด๋ฒคํŠธ - ์‚ฌ์šฉ์ž๊ฐ€ ์ฒดํฌ๋ฐ•์Šค๋ฅผ ํด๋ฆญํ•  ๋•Œ๋งˆ๋‹ค ๊ฒฝ๊ณ ์ฐฝ์— value๊ฐ’์„ ๋„์›Œ์ฃผ๊ธฐ</h3>

    <input onclick="check(this);" type="checkbox" value="1" id="input1">์กฐํ•ญ1
    <input onclick="check(this);" type="checkbox" value="2" id="input2">์กฐํ•ญ2
    <input onclick="check(this);" type="checkbox" value="3" id="input3">์กฐํ•ญ3

    <script>
    function check(input){
        if(input.checked){   // checkbox์— ์ฒดํฌ๋ฅผ ํ–ˆ๋‹ค๋ฉด 
            alert(input.value + "์กฐํ•ญ");    // ๊ฒฝ๊ณ ์ฐฝ ์ถœ๋ ฅ
        }
	  }
    </script>

 

 

๐Ÿ‘ฉ‍๐Ÿ’ป select ํƒœ๊ทธ์—์„œ ์˜ต์…˜๊ฐ’์„ ์„ ํƒํ–ˆ์„ ๋•Œ ๊ทธ ๊ฐ’์„ ์›น ๋ธŒ๋ผ์šฐ์ €์— ์ถœ๋ ฅํ•˜๊ธฐ

 

  <h3>select์—์„œ value์†์„ฑ์€ ์„ ํƒ๋œ ๊ฐ’์„ ์˜๋ฏธํ•œ๋‹ค</h3>
    <h3>change์ด๋ฒคํŠธ</h3>
    
    <h2 id="title"> ๋‹จ์–ด๋ฅผ ์„ ํƒํ•˜์„ธ์š” </h2>
    <script>
        
        window.onload = function(){
        var c = document.querySelector(".change");
        var ch = c.querySelectorAll(".change option");
        var title = document.querySelector("#title");
        console.log(ch);

        c.onchange = function () {

            if (c.value == "h") {
                 //this.log == c.value
                title.innerHTML = "hello์ž…๋‹ˆ๋‹ค";
            } else if (c.value == "b") {
                title.innerHTML = "bye์ž…๋‹ˆ๋‹ค";
            } else if (c.value == "g") {
                title.innerHTML = "good-morning์ž…๋‹ˆ๋‹ค";
            } else {
                title.innerHTML ="๋‹จ์–ด๋ฅผ ์„ ํƒํ•˜์„ธ์š”";
            }
        }
    }

    </script>

    <select class="change">
        <option value="h">hello</option>
        <option value="b">bye</option>
        <option value="g">good-morning</option>
        <option value="k">์„ ํƒ</option>
    </select>

 

Document

select์—์„œ value์†์„ฑ์€ ์„ ํƒ๋œ ๊ฐ’์„ ์˜๋ฏธํ•œ๋‹ค

change์ด๋ฒคํŠธ

๋‹จ์–ด๋ฅผ ์„ ํƒํ•˜์„ธ์š”

 

 

 

 ๐Ÿ‘ฉ‍๐Ÿ’ป ํ™•์ธ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ, ์ขŒ์„์ด ์ ์–ด๋„ ํ•œ ๊ฐœ ์ด์ƒ ์ฒดํฌ๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋ฉด ๊ฒฝ๊ณ ์ฐฝ์„ ๋„์šฐ๊ธฐ

 

    <input type="checkbox" name="seat" value="1">1๋ฒˆ
    <input type="checkbox" name="seat" value="2">2๋ฒˆ
    <input type="checkbox" name="seat" value="3">3๋ฒˆ
    <input type="checkbox" name="seat" value="4">4๋ฒˆ
    <input type="checkbox" name="seat" value="5">5๋ฒˆ
    <input type="checkbox" name="seat" value="6">6๋ฒˆ
    <input type="checkbox" name="seat" value="7">7๋ฒˆ
    <input type="checkbox" name="seat" value="8">8๋ฒˆ
    <input type="checkbox" name="seat" value="9">9๋ฒˆ

    <button type="button" id="btn">ํ™•์ธ</button>

    <script>
       
       // ๋ฒ„ํŠผ์„ ํด๋ฆญ์‹œ, ์ขŒ์„์ด ์ ์–ด๋„ ํ•œ ๊ฐœ์ด์ƒ ์ฒดํฌ๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋ฉด ๊ฒฝ๊ณ ์ฐฝ์„ ๋„์šฐ์„ธ์š”

        var seat = document.getElementsByName("seat");    // ์ขŒ์„ ํƒœ๊ทธ ๊ฐ–๊ณ ์˜ค๊ธฐ
        //document.querySelectorAll("input[name='seat']"); 
        var btn = document.getElementById("btn");         // ๋ฒ„ํŠผ ํƒœ๊ทธ ๊ฐ–๊ณ ์˜ค๊ธฐ

        btn.onclick = function () {
            var count = 0;
            for (var i = 0; i < seat.length; i++) {
                if (seat[i].checked == true) {
                    count++;
                }
            }
            if (count < 1) {
                alert("์ขŒ์„ ์„ ํƒํ•˜์…ˆ");
            } else {
                alert("์ •์ƒ์ ์œผ๋กœ ์ขŒ์„์ด ์„ ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค")
            }
        }

    </script>

 

Document 1๋ฒˆ 2๋ฒˆ 3๋ฒˆ 4๋ฒˆ 5๋ฒˆ 6๋ฒˆ 7๋ฒˆ 8๋ฒˆ 9๋ฒˆ

 

 

 

๐Ÿ‘ฉ‍๐Ÿ’ป ์นด์šดํŠธ ๋งŒ๋“ค๊ธฐ ( ์ฆ๊ฐ€, ๊ฐ์†Œ, ์Œ์ˆ˜๋Š” ์ œ์™ธ )

 

    <h3>JS ์นด์šดํŠธ ๋งŒ๋“ค๊ธฐ - this, innerHTML, value ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋จ</h3>

    <input type="number" value="0" id="count">
    <button onclick="calc(this)" id="plus" >+</button>
    <button onclick="calc(this)" id="minus">-</button>

    <script>

        var plus = document.getElementById("plus");
        var minus = document.getElementById("minus");
        var count = document.getElementById("count");

        console.log(this);

        function calc(b) {
            console.log(b);
            if (b == plus) {   //ํƒœ๊ทธ๊ฐ€ ์–ด๋–ค ๊ฐ’์ธ์ง€ ๊ตฌ๋ถ„์„ ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๋Š” ๊ฑฐ ์•„๋‹ˆ๋‹ˆ...? ์ •์‹  ์ฐจ๋ฆฌ์ž
                count.value++;
            }else{
                if (count.value == 0) {    //0 ์•„๋ž˜๋กœ ๊ธˆ์ง€๋ผ๋Š” ๊ฒฝ๊ณ ์ฐฝ์ด ๋œฌ ์ดํ›„๋กœ๋Š” ์‹คํ–‰์ด ๋ฉˆ์ถฐ์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— return;
                    alert("0 ์•„๋ž˜๋กœ ๊ธˆ์ง€")
                    return;  //์ข…๋ฃŒ
                }
                count.value--;

                /*if(count.vlue <= 0){
                    alert("0 ์•„๋ž˜๋กœ ๊ธˆ์ง€")
                    return;}
                */
            }            
        }

    </script>

 

Document

JS ์นด์šดํŠธ ๋งŒ๋“ค๊ธฐ - this, innerHTML, value ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋จ

 

 

๐Ÿ‘ฉ‍๐Ÿ’ป ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ, ์‚ฌ์ง„ ๋ณ€๊ฒฝ & ์‚ฌ์ง„ border ์ƒ‰๊น” ๋ณ€๊ฒฝํ•˜๊ธฐ

 

    <article>

        <img src="img/1.jpg" width="200" style="border: 3px solid black;" id="img">

        <select id="season">
            <option value="1.jpg">๋ด„</option>
            <option value="2.jpg">์—ฌ๋ฆ„</option>
            <option value="3.jpg">๊ฐ€์„</option>
            <option value="4.jpg">๊ฒจ์šธ</option>
        </select>

        <button id="btn">์ด๋ฏธ์ง€๋ฐ”๊พธ๊ธฐ</button>

        <input type="color" id="input">
        <button id="btn2">์ƒ‰์ƒ๋ณ€๊ฒฝํ•˜๊ธฐ</button>
    </article>
    
    <script>
        var season = document.querySelector("#season");
        var btn = document.getElementById("btn");
        var btn2 = document.getElementById("btn2");
        var input = document.getElementById("input");
        var img = document.getElementById("img");
     
        console.log(img.src);
        console.log(season[1].value);
        bnt.onclick = function(){
             img.src = "img/" + season.value;  // if๋ฌธ์„ ์“ฐ์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ด์œ ๋Š”!! 
        }                                      // ๊ฐ’์„ ๋ณ€์ˆ˜ img.src์— ์ €์žฅํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๊ฐ’์€ ํด๋ฆญํ•  ๋•Œ๋งˆ๋‹ค ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์ด ์ €์žฅ๋˜๋Š” ๊ฒƒ 
            
        btn2.onclick = function(){
            img.style.borderColor = input.value;
        }
    </script>

 

Document

 


โœ… PLUS!! onfocus  &  onblur 

  onfocus : input์— focus๊ฐ€ ๋“ค์–ด๊ฐˆ ๋•Œ ๋™์ž‘ํ•œ๋‹ค

  onblur : input์— focus๊ฐ€ ๋– ๋‚ฌ์„ ๋•Œ ๋™์ž‘ํ•œ๋‹ค

 

    <h3>onfocus - ์ธํ’‹์— focus ๋“ค์–ด๊ฐˆ ๋•Œ ๋™์ž‘, onblur - ์ธํ’‹์— focus๊ฐ€ ๋– ๋‚ฌ์„ ๋•Œ ๋™์ž‘</h3>
    <input type = "text" class="xx">

    <script>
        var xx = document.querySelector(".xx");
        xx.onfocus = function(){
            console.log("ํฌ์ปค์Šค ์ง„์ž…");
        }
        xx.onblur = function(){
            console.log("ํฌ์ปค์Šค ์•„์›ƒ");
        }

    </script>

 

 

onfocus์™€ onblur ์‚ฌ์šฉํ•ด๋ณด๊ธฐ

 

    ์•„์ด๋”” <input type="text" id="id" placeholder="4๊ธ€์ž ์ด์ƒ"> <br>
    <h4 id ="id_err"></h4>
    ๋น„๋ฐ€๋ฒˆํ˜ธ <input type="password" id="pw" placeholder="9๊ธ€์ž ์ด์ƒ">
    <h4 id="pw_err" ></h4>
    
    <script>
        var id = document.getElementById("id");
        var pw = document.getElementById("pw");
        var id_err = document.getElementById("id_err");
        var pw_err = document.getElementById("pw_err");

      //์•„์ด๋””
        //change๋„ ๋น„์Šทํ•˜๊ฒŒ ์‚ฌ์šฉ์€ ๊ฐ€๋Šฅํ•œ๋ฐ 
        //์ฐจ์ด์ ์€ change๋Š” ๊ฐ’์ด ๋ณ€ํ•  ๋•Œ ์‹คํ–‰์ด ๋˜๊ณ  
        //blur๋Š” ํฌ์ปค์Šค๋ฅผ ๋ฒ—์–ด๋‚˜๋Š” ์ˆœ๊ฐ„ ์‹คํ–‰์ด ๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค
        id.onblur = function(){
            if(id.value.length < 4){
                id_err.innerHTML = "์•„์ด๋”” 4๊ธ€์ž ์ด์ƒ์ด๊ฑฐ๋“ ์š”?";
                id.style.border = "3px solid red";
            } else{
                id_err.innerHTML = "";
                id.style.border = "3px solid green";
            }
        }

        //๋น„๋ฐ€๋ฒˆํ˜ธ

        pw.onblur = function(){
            if(pw.value.length < 9){
                pw_err.innerHTML = "๋น„๋ฒˆ 9๊ธ€์ž ์ด์ƒ์ด๊ฑฐ๋“ ์š”?";
                pw.style.border = "3px solid red";
            } else{
                pw_err.innerHTML = "";
                pw.style.border = "3px solid green";
            }
        }

    </script>

 

 

๋…ธ๋“œ ์ƒ์„ฑ, ์ถ”๊ฐ€ํ•˜๊ธฐ

 

ํ•จ์ˆ˜ ์„ค๋ช…
createElement(  ) ์š”์†Œ๋ฅผ ์ƒ์„ฑ
โญ appendChild(  ) ํ…์ŠคํŠธ๋ฅผ ์ƒ์„ฑ
innerHTML =  ์š”์†Œ๋ฅผ HTML๋ฐฉ์‹์œผ๋กœ ์ƒ์„ฑ
insertBefore(์‚ฝ์ž…๋…ธ๋“œ, ๊ธฐ์ค€๋…ธ๋“œ) ๊ธฐ์ค€๋…ธ๋“œ ์•ž์— ์‚ฝ์ž…๋…ธ๋“œ ์ถ”๊ฐ€

 

 

๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ• = innerHTML

 

    <!-- innerHTML -->
    <div class="inner1"></div>

 
    <button class="btn">ํƒœ๊ทธ์ƒ์„ฑ</button>

    <script>

        var inner1 = document.querySelector(".inner1");
        var btn = document.querySelector(".btn");
        btn.onclick = function(){
            //๋ฌธ์ž์—ด์˜ ํ˜•ํƒœ๋กœ ํƒœ๊ทธ๋ฅผ ์ž์‹์œผ๋กœ ๋„ฃ๋Š”๋‹ค
            inner1.innerHTML = "<div><a href='#'>ํƒœ๊ทธ์ƒ์„ฑ</a></div>";
        
        }
    </script>

 

 

Document

 

 

์ง์ ‘ ์ฒดํฌ๋ฐ•์Šค ๋งŒ๋“ค๊ธฐ - ๋นˆ ๋ฌธ์ž์—ด์— ์ถ”๊ฐ€ํ•˜๊ธฐ

 

    <div class="inner2">
        <!-- <input type="checkbox" name="add" value="1"> 1
        <input type="checkbox" name="add" vlaue="2"> 2
        <input type="checkbox" name="add" value="3"> 3
        <input type="checkbox" name="add" value="4"> 4
        <input type="checkbox" name="add" value="5"> 5 -->
    </div>

    <button class="btn2">ํƒœ๊ทธ์ƒ์„ฑ</button>
    <script>
        var inner2 = document.querySelector(".inner2");  // ์ฒดํฌ๋ฐ•์Šค๋ฅผ ๋„ฃ์„ ํƒœ๊ทธ ํ•„์š”
        var btn2 = document.querySelector(".btn2");      // ๋ฒ„ํŠผ ํƒœ๊ทธ ํ˜ธ์ถœ
        btn2.onclick = function() {                      // ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ์— ์ฒดํฌ๋ฐ•์Šค ์ƒ์„ฑ
            var str="";                                  // ๋ฌธ์ž์—ด ๋ณ€์ˆ˜ ์ƒ์„ฑ
            for(var i = 1; i <= 5; i++){                  
                str += '<input type="checkbox" name="add" value="'+ i +'">'+ i; 
            }
     
             inner2.innerHTML=str;   // str ๋ณ€์ˆ˜๋ฅผ inner2 ํƒœ๊ทธ ์‚ฌ์ž‡๊ฐ’์— ์ €์žฅ
        }
    </script>

 

Document

 

createElement ์‚ฌ์šฉ

 

    <input type="text" class="todo" placeholder="ํ•  ์ผ์„ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”">
    <button class="btn">์ถ”๊ฐ€</button>

    <ul class="list"></ul>
    
    <script>
        var todo = document.querySelector(".todo");   //input ํƒœ๊ทธ
        var list = document.querySelector(".list");   //ulํƒœ๊ทธ (์ถ”๊ฐ€๋œ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋„ฃ์„ ํƒœ๊ทธ)

        var btn = document.querySelector(".btn");     //๋ฒ„ํŠผ ์ƒ์„ฑ
        
        btn.onclick = function(){

            var li = document.createElement("li");  //liํƒœ๊ทธ์ƒ์„ฑ, ulํƒœ๊ทธ์— ๋“ค์–ด๊ฐˆ liํƒœ๊ทธ
            var a = document.createElement("a");    //aํƒœ๊ทธ์ƒ์„ฑ, liํƒœ๊ทธ์— ๋“ค์–ด๊ฐˆ aํƒœ๊ทธ
            a.href = "#";
            a.innerHTML = todo.value;               // inputํƒœ๊ทธ์˜ value๋ฅผ aํƒœ๊ทธ์˜ ์‚ฌ์ž‡๊ฐ’์— ์ €์žฅ
            
            li.appendChild(a);    //li์˜ ์ž์‹์œผ๋กœ a๋ฅผ ๋„ฃ๋Š”๋‹ค
            list.appendChild(li); //list์˜ ์ž์‹์œผ๋กœ li๋ฅผ ๋„ฃ๋Š”๋‹ค
            
            todo.value=""; // ์ดˆ๊ธฐํ™”(์ž…๋ ฅ์ฐฝ์— ๋‚จ์•„์žˆ๋Š” ๊ฐ’ ์ดˆ๊ธฐํ™”)
        }
            
    </script>

 

Document

 

 

createElement ์‘์šฉ ver1

 

    <div id="addList">

    </div>

    <button id="add">์ถ”๊ฐ€</button>
    
    <script>
        
        window.onload = function(){   // ๋กœ๋”ฉ ํ›„ ์‹คํ–‰
            
            var addList = document.getElementById("addList");  // ์ถ”๊ฐ€ํ•œ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋‹ด์€ ์žฅ์†Œ
            var ul = document.createElement("ul"); //ul ์ƒ์„ฑ    
            
            for(var i = 1; i <= 10; i++){

                var li = document.createElement("li");   // ul ํƒœ๊ทธ์— ๋“ค์–ด๊ฐˆ li ํƒœ๊ทธ
                li.innerHTML = "๋ฆฌ์ŠคํŠธ" + i;              // li์˜ ์‚ฌ์ž‡๊ฐ’ ์ดˆ๊ธฐํ™”

                ul.appendChild(li);                      // li ํƒœ๊ทธ๋ฅผ ul ํƒœ๊ทธ์— ์ž์‹์œผ๋กœ ์ƒ์„ฑ
            
            } 
            addList.appendChild(ul);                     // li๊ฐ€ ๋“ค์–ด์žˆ๋Š” ul ํƒœ๊ทธ๋ฅผ addList์— ๋‹ด๊ธฐ
        }  // ์ˆœ์„œ๋Œ€๋กœ "๋ฆฌ์ŠคํŠธ 1~10"์ด ์ž๋™ ์ƒ์„ฑ๋จ

        var add = document.getElementById("add");
        add.onclick = function() {                       // ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ์— ๋ฆฌ์ŠคํŠธ ์ถ”๊ฐ€ํ•˜๊ธฐ

            var li = document.createElement("li");
            li.innerHTML = "์ถ”๊ฐ€๋œ ๋ฆฌ์ŠคํŠธ";

            //์ƒˆ๋กญ๊ฒŒ addList > li ํƒœ๊ทธ๋ฅผ ์–ป์Œ
            document.querySelector("#addList > ul").appendChild(li);  // ์žฌ์‚ฌ์šฉํ•  ํ•„์š” ์—†๋Š” ๋ณ€์ˆ˜๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋ณ€์ˆ˜ ์ƒ์„ฑ ์•ˆํ•˜๊ณ  ๋ฐ”๋กœ go!ํ•ด๋„ ์ข‹๋‹ค~
            
        }

    </script>

 

Document

 

 

createElement  ์‘์šฉ ver2

 

    <button type="button" id="addLists">5๊ฐœ์ถ”๊ฐ€ํ•˜๊ธฐ</button>
    <button type="button" id="addList">1๊ฐœ์ถ”๊ฐ€ํ•˜๊ธฐ</button>
    
    <table>
        <thead>
			<tr>
				<th>๊ต์‹œ</th>
				<th>ํ›ˆ๋ จ๊ณผ๋ชฉ</th>
				<th>๋‹ด๋‹น์ž</th>
				<th>ํ›ˆ๋ จ๋‚ด์šฉ</th>
			</tr>
        </thead>
        <tbody class="todoList">
            <tr>
                <td><input type="text" size="3"></td>
                <td><input type="text"></td>
                <td><input type="text" size="5"></td>
                <td><input type="text"></td>
            </tr>
        </tbody>
        
    </table>
    

    <script>
        var addLists = document.getElementById("addLists"); // 5๊ฐœ ์ถ”๊ฐ€ ๋ฒ„ํŠผ
        var addList = document.getElementById("addList"); // 1๊ฐœ ์ถ”๊ฐ€ ๋ฒ„ํŠผ
        var todoList = document.querySelector(".todoList"); // ์ถ”๊ฐ€ํ•  ์นธ ๋ชธํ†ต

        addList.onclick = function(){  // 1๊ฐœ ์ถ”๊ฐ€ํ•˜๊ธฐ ํ•จ์ˆ˜

            var tr = document.createElement("tr");
            tr.innerHTML=
                '<td><input type="text" size="3"></td>'+
                '<td><input type="text"></td>'+
                '<td><input type="text" size="5"></td>'+
                '<td><input type="text"></td>';
           
            todoList.appendChild(tr);
        }


        // 5๊ฐœ ์ถ”๊ฐ€ ๋ฒ„ํŠผ -> ์‹คํ–‰
        
        addLists.addEventListener("click", function(){  // ๋ฒ„ํŠผ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ 5๊ฐœ ์ถ”๊ฐ€ํ•˜๋Š” ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋œ๋‹ค 

            for( var i = 1; i <= 5; i++ ){
               five();
            }

        })

         
      var five = function(){     // 5๊ฐœ์˜ ์นธ์„ ๋งŒ๋“œ๋Š” ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋”ฐ๋กœ ๋งŒ๋“ค๊ณ  ์‹คํ–‰์„ ๋”ฐ๋กœ!

          var tr = document.createElement("tr");

                  tr.innerHTML=
                      '<td><input type="text" size="3"></td>'+
                      '<td><input type="text"></td>'+
                      '<td><input type="text" size="5"></td>'+
                      '<td><input type="text"></td>';
            
            todoList.appendChild(tr);
      }


    </script>

 

Document
๊ต์‹œ ํ›ˆ๋ จ๊ณผ๋ชฉ ๋‹ด๋‹น์ž ํ›ˆ๋ จ๋‚ด์šฉ