-
์๋ฐ์คํฌ๋ฆฝํธ ์ด๋ฒคํธ ํธ๋ค๋ง ์ฐ์ต2JavaScript 2020. 9. 13. 23:11
๐ฏ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ค์ํ ์ด๋ฒคํธ ํธ๋ค๋ง ๋ฌธ์ ๋ฅผ ์ฐ์ตํด๋ณธ๋ค.
์ด๋ฒคํธ ์ฒ๋ฆฌ ๋ฌธ์ ์ฐ์ต
1. ์ฆ๊ฐ ๋ฒํผ
+๋ฒํผ์ ํด๋ฆญํ๋ฉด ๊ฐ์ด 1์ฉ ์ฆ๊ฐํ๊ณ –๋ฒํผ์ ํด๋ฆญํ๋ฉด ๊ฐ์ด 1์ฉ ๊ฐ์ํ ๋๋ก ๊ตฌํ. ๋ง์ฝ ๊ฐ์ด 1์ธ ์ํ์์ –๋ฒํผ์ ํด๋ฆญํ๋ฉด ๊ฐ์ด ๊ฐ์๋์ง ์๊ณ 1์ธ ์ํ๋ก ์ ์ง.
<body> ๊ฐฏ์<input type="text" name="quantity" id="quantity" value="1"> <button id="up" onclick="up()">+</button> <button id="down" onclick="down()">-</button> </body>
<script type="text/javascript"> function up() { var count = document.getElementById("quantity").value; document.getElementById("quantity").value = parseInt(count) + 1; } function down() { var count = document.getElementById("quantity").value; if (count != 1) { document.getElementById("quantity").value = parseInt(count) - 1; } } </script>
2. ์ฒดํฌ๋ฐ์ค ์ ํ ๊ฒฐ๊ณผ ์ถ๋ ฅ
์ทจ๋ฏธ์ ํด๋นํ๋ ์ฒดํฌ๋ฐ์ค๋ฅผ ์ ํํ๊ณ [๊ฒฐ๊ณผ๋ณด๊ธฐ]๋ฒํผ์ ํด๋ฆญํ๋ฉด ์ ํ ๋ ๊ฐ๋ค์ ์ถ๋ ฅํ๋ ์์ ์ด๋ค.
<body> ์ทจ๋ฏธ<br> <ul> <li>์ผ๊ตฌ<input type="checkbox" name="hobby" value="์ผ๊ตฌ"></li> <li>๋๊ตฌ<input type="checkbox" name="hobby" value="๋๊ตฌ"></li> <li>๊ฒ์<input type="checkbox" name="hobby" value="๊ฒ์"></li> </ul> <button onclick="show()">๊ฒฐ๊ณผ๋ณด๊ธฐ</button><br> ๊ฒฐ๊ณผ๊ฐ:<div id="result"></div> </body>
<script type="text/javascript"> function show() { var arr = document.querySelectorAll("input[name='hobby']"); var str = ""; for (var i = 0; i < arr.length; i++) { var c = arr[i]; if (c.checked) { str += c.value + "<br>"; } } document.getElementById('result').innerHTML = "<h1>" + str + "</h1>"; } </script>
3. ๊ธ์์ ์ธ๊ธฐ
textarea์ ์ ๋ ฅํ ๊ธ์์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ ์์ ์ด๋ค. ๊ธ์๋ฅผ ์ ๋ ฅํ ๋ ๋ง๋ค ๋์์ ์ ๋ ฅ ๋ฌธ์์์ ์ ๋ ฅํ ๊ธ์ ๊ฐ์๊ฐ ์ถ๋ ฅ๋๋ค.
<body> ๊ธ์์ ์ธ๊ธฐ<br> <textarea rows="10" cols="10" onkeydown="change()"></textarea><br> ์ ๋ ฅ๋ฌธ์์:<span id="result"></span> <script type="text/javascript"> function change() { var text = document.querySelector('textarea').value; document.getElementById('result').innerHTML = text.length; } </script> </body>
4. ์ ์ฒด์ ํ ์ฒดํฌ๋ฐ์ค
์ ์ฒด์ ํ์์ฒดํฌํ๋ฉด๋ชจ๋ ์ฒดํฌ๋ฐ์ค๊ฐ์ ํ์ด๋๊ณ ,์ ์ฒด์ ํ์ํด์ ํ๋ฉด ๋ชจ๋ ์ฒดํฌ๋ฐ์ค๊ฐ ํด์ ๋๋ค.
<body> ์ ์ฒด์ ํ <input type="checkbox" name="all" onclick="check(this)"><br> <input type="checkbox" name="java" class="lang">java<br> <input type="checkbox" name="sql" class="lang">sql<br> <input type="checkbox" name="angular" class="lang">angular<br> </body>
<script type="text/javascript"> function check(n) { var lang = document.querySelectorAll(".lang"); for (var i = 0; i < lang.length; i++) { lang[i].checked = n.checked; } } </script>
this๋ก ๋๊ฒจ์ฃผ๋ฉด ์ธํ ์ ์ฒด๊ฐ ๋์ด๊ฐ๋ค.? ๊ทธ๊ฒ ์๋๋ผ ๊ทธ๋ฅ ์ง ์ธํ๋ง ๊ฐ๋๋ฏ. ์ฒดํฌํจ์๋ n์ผ๋ก ๋ฐ๊ณ
5. input๊ฐ ๋ณต์ฌ ์ฒดํฌ๋ฐ์ค
์ผํ๋ชฐ์์ ๋ฐฐ์ก์ง ์ ๋ณด๋ฅผ ์ค์ ํ๊ธฐ ์ํ ์ค์ต์์ ๋ก์, ํ์ ๊ฐ์ ์ ์ ์ฅ๋ ์ ๋ณด์ ๋ฐฐ์ก์ง ์ ๋ณด๊ฐ ๋์ผํ ๊ฒฝ์ฐ์๋ ๋์ผ checkbox ์ฒดํฌ์ ์๋ ์ผ๋ก ํ์์ ๋ณด ๋ฐ์ดํฐ๊ฐ ๋ฐฐ์ก์ง ์ ๋ณด๊ฐ์ผ๋ก ์ค์ ํ๋ ๊ธฐ๋ฅ ๊ตฌํ.
<body> ํ์์ ๋ณด<br> ์ฃผ์<input type="text" name="address1" id="address1" value="์์ธ์ ๊ฐ๋จ๊ตฌ"><br> ์ ํ๋ฒํธ<input type="text" name="phone1" id="phone1" value="010-1234-1234"><br> <hr> ๋์ผ<input type="checkbox" name="chk" onclick="check(this)"> <hr> ๋ฐฐ์ก์ง ์ ๋ณด<br> ์ฃผ์<input type="text" name="address2" id="address2" value=""><br> ์ ํ๋ฒํธ<input type="text" name="phone2" id="phone2" value=""><br> </body>
ํจ์๋ง ํธ์ถํด์ this ๋๊ธฐ๊ธฐ
<script type="text/javascript"> function check(n) { if (n.checked) { document.getElementById("address2").value = document.getElementById('address1').value; document.getElementById("phone2").value = document.getElementById('phone1').value; } else { document.getElementById("address2").value = ""; document.getElementById("phone2").value = ""; } } </script>
if ๋ฌธ์ผ๋ก ํ ๊ธ๊ธฐ๋ฅ. checked ๊ธฐ์ตํ๊ธฐ
add์ด๋ฒคํธ๋ฆฌ์ค๋๋ก ๋ฐ๊ฟ๋ณด๊ธฐ
๋์ผ<input type="checkbox" name="chk" id="chk" onclick="check(this)">
id ์ถ๊ฐํด์ฃผ๊ณ
<script type="text/javascript"> document.getElementById("chk").addEventListener("click", check, false); function check() { var n = document.getElementById("chk"); if(n.checked){ document.getElementById("address2").value = document.getElementById('address1').value; document.getElementById("phone2").value = document.getElementById('phone1').value; } else { document.getElementById("address2").value = ""; document.getElementById("phone2").value = ""; } } </script>
6. ํ ์คํธ ์ฌ์ด์ฆ ์กฐ์
์ ๊ณต๋ “์๋ ํ์ธ์” ๋ฌธ์์ด์ ๊ธ๊ผด ํฌ๊ธฐ๋ฅผ ๋ณ๊ฒฝํ๋ ์์ .
+ ๋ฒํผ์ ํด๋ฆญํ๋ฉด 32px๋ก ๋ณ๊ฒฝํ๊ณ – ๋ฒํผ์ ํด๋ฆญํ๋ฉด 16px๋ก ๋ณ๊ฒฝํ๋ค.<body> <button onClick="up()">+</button><button onClick="down()">-</button> <div id="result"> ์๋ ํ์ธ์. </div> </body>
<script type="text/javascript"> var size = 32; function up() { size = size + 4; var txt = document.querySelector('#result'); txt.style = "font-size:" + size + "px"; } function down() { size = size - 4; var txt = document.querySelector('#result'); txt.style = "font-size:" + size + "px"; } </script>
7. ๊ธ๊ผด ํฌ๊ธฐ ์ ํ ์ต์
์ ๊ณต๋ select ํ๊ทธ์ ๊ธ๊ผด ํฌ๊ธฐ๋ฅผ ์ ํ์, ์ ํ๋ ๊ธ๊ผด ํฌ๊ธฐ๋ก “์ ๋ ํ์ธ์. ๋ฌธ์์ด์ ๊ธ๊ผด ํฌ๊ธฐ๋ฅผ ๋ณ๊ฒฝํ๋ ์์ .
<body> ๊ธ๊ผดํฌ๊ธฐ: <select onchange="fontSize(this.value)"> <option value="16px">16px</option> <option value="32px">32px</option> <option value="40px">40px</option> <option value="56px">56px</option> </select> <div id="result"> ์๋ ํ์ธ์. </div> </body>
์ฌ๊ธฐ์๋ถํฐ ์ ๋ ํธ์ ๋ฐธ๋ฅ๊ฐ์ ํธ๋ค๋ฌ์ this.value๋ก ๋ณด๋ธ๋ค.
<script type="text/javascript"> function fontSize(v) { var result = document.querySelector('#result'); result.style = "font-size:" + v; } </script>
8. '๊ฐ์ ์ ๋ ฅํ์ธ์' ๊ฒฝ๊ณ ์ฐฝ ์๋ฆผ
์ ํจ์ฑ๊ฒ์ฌ์ค์ต์์ .์์ด๋์๋น๋ฐ๋ฒํธ๊ฐ์์ ๋ ฅํ์ง์์ผ๋ฉด‘๊ฒฝ๊ณ ์ฐฝ’ ์ถ๋ ฅํ๊ณ ์ฑ๊ณต์ success.html ๋ณด์ฌ์ฃผ๋ ์ค์ต.
<body> <form action="success.html" onSubmit="return login(event)"> ์์ด๋<input type="text" name="userid" id="userid"><br> ๋น๋ฐ๋ฒํธ<input type="text" name="passwd" id="passwd"><br> <input type="submit" value="๋ก๊ทธ์ธ"> </form> </body>
<script type="text/javascript"> function login(e) { var id = document.getElementById("userid"); var pw = document.getElementById("passwd"); if (id.value.length == 0) { alert("์์ด๋๊ฐ์ ์ ๋ ฅํ์์ค"); id.focus(); return false; } if (pw.value.length == 0) { alert("๋น๋ฐ๋ฒํธ๊ฐ์ ์ ๋ ฅํ์์ค"); pw.focus(); return false; } } </script>
9. '๊ฐ์ ์ ๋ ฅํ์ธ์' ๊ฒฝ๊ณ ๋ฉ์ธ์ง ์ถ๋ ฅ
์ ํจ์ฑ๊ฒ์ฌ์ค์ต์์ .์์ด๋์๋น๋ฐ๋ฒํธ๊ฐ์์ ๋ ฅํ์ง์์ผ๋ฉดํ๊ทธ ์ <span>์์ญ์ ์๋ฌ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํ๊ณ ์ฑ๊ณต์ success.html ๋ณด์ฌ์ฃผ๋ ์ค์ต.
<body> <form action="success.html" onSubmit="return login(event)"> ์์ด๋<input type="text" name="userid" id="userid"> <span id="idSpan"></span><br> ๋น๋ฐ๋ฒํธ<input type="text" name="passwd" id="passwd"> <span id="pwSpan"></span><br> <input type="submit" value="๋ก๊ทธ์ธ"> </form> </body>
<script type="text/javascript"> function login(e) { var id = document.getElementById("userid"); var pw = document.getElementById("passwd"); var idSpan = document.getElementById("idSpan"); var pwSpan = document.getElementById("pwSpan"); if (id.value.length == 0) { idSpan.innerHTML = "์์ด๋๊ฐ์ ์ ๋ ฅํ์์ค"; id.focus(); return false; } if (pw.value.length == 0) { pwSpan.innerHTML = "๋น๋ฐ๋ฒํธ๊ฐ์ ์ ๋ ฅํ์์ค"; pw.focus(); return false; } } </script>
10. ์ ์ฐฝ ์ด๊ธฐ, ์ ์ฐฝ ๋ซ๊ธฐ
๋ถ๋ชจ(sample15_stu.html)์ฐฝ์์ ๋ฒํผ์ ์ ํํ์ฌ ๋์์ฒ๋ฆฌ ๋๋๋ก ๊ตฌํ ํ๋ค.
<body> <button onClick="childOpen()">์์ฐฝ ์ด๊ธฐ</button> <button onClick="childClose()">์์ฐฝ ๋ซ๊ธฐ</button> <button onClick="parentClose()">ํ์ฌ์ฐฝ(๋ถ๋ชจ์ฅ) ๋ซ๊ธฐ</button> </body>
<script type="text/javascript"> var childWin; function childOpen() { childWin = window.open("childWin.html", "", "width=200,height=200"); } function childClose() { childWin.close(); } function parentClose() { window.close(); } </script>
<body> childWin.html<br> <button onClick="a()">ํ์ฌ์ฐฝ ๋ซ๊ธฐ</button> <button onClick="b()">๋ถ๋ชจ์ฐฝ ๋ซ๊ธฐ</button> </body>
<script> function a() { window.close(); } function b() { opener.close(); } </script>
11. ์ฃผ์ ์ฐพ์๋ณด๊ธฐ ์ฐฝ
‘์ฐํธ๋ฒํธ’ ๋ฐ ‘์ฃผ์’์ถ๊ฐํ๋ ์ฝ๋๋ฅผ ๊ตฌํํ๋ค.
<body> ์ฐํธ๋ฒํธ<input type="text" name="post" id="post"><br> ์ฃผ์:<input type="text" name="address" id="address"><br> ์ถ๊ฐ์ฃผ์:<input type="text" name="address1" id="address1"> <button onClick="idCheck()">์ฃผ์</button> </body>
<script type="text/javascript"> var childWin; function idCheck() { childWin = window.open("childWin3.html", "", "width=400,height=400"); } </script>
childwin3
**<body> <table border="1"> <tr> <th>์ฐํธ๋ฒํธ</th> <th>์ฃผ์</th> </tr> <tr> <td><a href="javascript:post('12345','์์ธ์ ๊ฐ๋จ๊ตฌ XXX ์ํํธ')">12345</a></td> <td>์์ธ์ ๊ฐ๋จ๊ตฌ XXX ์ํํธ</td> </tr> <tr> <td><a href="javascript:post('99999','๊ฒฝ๊ธฐ๋ ๊ณ ์์ ZZZ ์ํํธ')">99999</a></td> <td>๊ฒฝ๊ธฐ๋ ๊ณ ์์ ZZZ ์ํํธ</td> </tr> </table> </body>**
<script> function post(postNum, addr) { console.log("post"); // console.log(opener.document.getElementById("post").value); opener.document.getElementById("post").value = postNum; opener.document.getElementById("address").value = addr; window.close(); } function aaa() { console.log("aaa"); } </script>
12. ์ ๋ ฅ๊ฐ ์ถ๋ ฅ ๋ฒํผ
์ ๋ ฅํ ๊ฐ์ ์ ์ฅํ๊ณ ์ถ๋ ฅํ๋ ์ฝ๋๋ฅผ ๊ตฌํํ๋ค.
<body> ๊ฐ:<input type="search" name="v1" id="v1"> <button onClick="save()">์ ์ฅ</button><br> <div id="result"> </div> </body>
<script type="text/javascript"> var arr = []; function save() { var v1 = document.querySelector('#v1').value; arr.push(v1); list(); } function list() { var result = document.querySelector('#result'); var mesg = ''; for (var i = 0; i < arr.length; i++) { mesg = mesg + arr[i] + "<br>"; } result.innerHTML = mesg; } </script>
๋ฐฐ์ด ์ฌ์ฉํด์ ๋ฐธ๋ฅ๊ฐ ํธ์ํ๊ณ ์ ์ฅ๊ณผ ์ถ๋ ฅ ๋ฉ์๋๋ฅผ ๋ถ๋ฆฌํด์ ๊ตฌํ.
์ ์ฅ์์ ์ถ๋ ฅ๋ฉ์๋ ํธ์ถํด์ ๋ฐฐ์ด ์์ ์ ๋ถ ์ถ๋ ฅํด์ ๋น ์คํธ๋ง์ ์ถ๊ฐํด์ค๋ค.
13. ์์คํค์ฝ๋ ์ถ๋ ฅ
<script> function test() { console.log(event.keyCode); document.getElementById('result').innerText = event.keyCode; } </script> </head> <body> <input type="text" onkeyup="test()"> <span id="result"></span> </body>
keyCode ์์คํค์ฝ๋
์ํฐ๋ฅผ ์น๋ฉด 13์ด ๋์ด.
์ํฐ๋ฅผ ์ณ๋ ์ถ๊ฐ๊ฐ ๋๊ฒ๋ ์์ ํด๋ณผ๊ฒ.
14. ์ํฐํค๋ก ์ ๋ ฅ๊ฐ ์ถ๋ ฅ
์ ๋ ฅํ ๊ฐ์ ์ ์ฅํ๊ณ ์ถ๋ ฅํ๋ ์ฝ๋๋ฅผ ๊ตฌํํ๋ค. ๋จ, ๊ฐ์ ์ ๋ ฅํ๊ณ enter ํค๋ฅผ ์ ๋ ฅํ์ ๋ ์ ์ฅํ๋๋ก ๊ตฌํํ๋ค.
<body> ๊ฐ:<input type="search" name="v1" id="v1" onkeyup="enter(event)"> <div id="result"> </div> </body>
<script type="text/javascript"> var arr = []; function save() { var v1 = document.getElementById('v1').value; arr.push(v1); list(); } function list() { var result = document.getElementById('result'); var mesg = ''; for (var i = 0; i < arr.length; i++) { mesg = mesg + arr[i] + "<br>"; } result.innerHTML = mesg; } function enter(e) { if (e.keyCode == 13) { save(); } } </script>
15. +์ฐ์ฐ, ์ดํฉ๊ตฌํ๊ธฐ, ์ ํ๊ฐ ์ดํฉ ๊ตฌํ๊ธฐ ๊ตฌํ
๋ค์ํ ํํ์ ์ฐ์ฐ์์ ์ค์ต์์ ๋ก์ 1๋ฒ ๋ฌธ์ ๋ [์ฐ์ฐ]๋ฒํผ์ ํด๋ฆญํ ๋ฉด์ ๋ ฅ๋๋๊ฐ์๊ฐ์๋ํด์์ถ๋ ฅํ๊ณ ,
2๋ฒ ๋ฌธ์ ๋ ์๋์ ์ ํํ์ ๋ ์๋์ผ๋ก ๊ฐ๊ฒฉ๊ณผ ์๋์ ์ฐ์ฐํ์ฌ ์ถ๋ ฅ ํ๋ ๋ฌธ์ ์ด๊ณ ,3๋ฒ ๋ฌธ์ ๋ ์ ํ๋ ๊ณผ์ผ ๊ฐ๊ฒฉ๋ง ๊ณ์ฐํ์ฌ ์ถ๋ ฅํ๋ ์ค์ต๋ฌธ์ ์ด๋ค.
<h1>1. +์ฐ์ฐ</h1> <input type="text" name="v1" id="v1" value="10">+ <input type="text" name="v2" id="v2" value="20">= <input type="text" name="result" id="result" value=""> <button onclick="sum()">์ฐ์ฐ</button><br>
function sum() { var v1 = document.getElementById('v1').value; var v2 = document.getElementById('v2').value; var result = parseInt(v1) + parseInt(v2); document.getElementById('result').value = result; }
<h1>2. ์ดํฉ ๊ตฌํ๊ธฐ</h1> ๊ฐ๊ฒฉ<input type="text" name="price" id="price" value="2500">X ์๋<select id="quantity" onchange="total()"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> </select> ์ดํฉ:<span id="total"></span>
function total() { var price = document.getElementById('price').value var quantity = document.getElementById('quantity').value; document.getElementById('total').innerText = price * quantity; }
<h1>3. ์ดํฉ ๊ตฌํ๊ธฐ2 (์ ํ๋ ๊ฐ๋ง)</h1> <div> ๋ฐ๋๋(1000์) <input type="checkbox" name="fruit" class="fruit" value="1000"><br> ์ฌ๊ณผ(500์) <input type="checkbox" name="fruit" class="fruit" value="500"><br> ๋ฐฐ(1500์) <input type="checkbox" name="fruit" class="fruit" value="1500"><br> <button onclick="totalPrice()">์ดํฉ๊ตฌํ๊ธฐ</button><br> ์ ํํ ์ด๊ฐ๊ฒฉ:<span id="totalPrice"></span> </div>
function totalPrice() { var fruit = document.querySelectorAll('.fruit'); var total = 0; for (var i = 0; i < fruit.length; i++) { if (fruit[i].checked) { total += parseInt(fruit[i].value); } } document.getElementById('totalPrice').innerText = total; }
๋๋ ์ 3๋ฒ์ด ์ด๋ ค์ ๋ค. ์ฒดํฌ๋ฐ์ค ์ฒดํฌ๋ ๊ณ ๋ฅด๊ธฐ ์ด๋ป๊ฒ ํ๋๋ผ? ํ๋๋ฐ ์ผ๋จ ํด๋์ค๋ก ์ ๋ ํธ ์ฌ๋ฌ๊ฐ ํ์ผ๋๊น ๋ฐ๋ณต๋ฌธ ์จ์ ํ๋์ฉ ์ฒดํฌ๋ ๊ฒ์ฌํ๊ณ ํ ํ ๋ณ์์ ๋ฐธ๋ฅ๊ฐ ๋ํด์ฃผ๋๊ตฌ๋.
16. ๋ฆฌ์คํธ ์ถ๊ฐ
<body> <form> <input type="text" id="item" autofocus="true"> <button type="button" id="add" class="button"> ์ถ๊ฐ</button><br> <div id="itemList"></div> </form> </body>
<script type="text/javascript"> var itemList = []; window.onload = function () { var addBtn = document.querySelector("#add"); addBtn.addEventListener("click", addList); } function addList() { var item = document.querySelector("#item").value; if (item != null) { itemList.push(item); document.querySelector("#item").value = ""; document.querySelector("#item").focus(); } showList(); console.log(itemList); } function showList() { var list = "<ul>"; for (var i = 0; i < itemList.length; i++) { console.log(itemList[i]); list += "<li>" + itemList[i] + "</li>"; } list += "</ul>"; console.log(list); document.querySelector("#itemList").innerHTML = list; } </script>
์ถ๊ฐ ๋ฒํผ์ ํด๋ฆญํ ๋๋ง๋ค ๋ฐฐ์ด์ ์์ดํ ์ด ์ถ๊ฐ๋๊ณ ์ผ๋ฆฌ์คํธ ํจ์๋ฅผ ํธ์ถํ๋ค.
์ผ๋ฆฌ์คํธ ํธ์ถํด์ ์ฝ์์ ์์ดํ ๋ฆฌ์คํธ ๋ฐฐ์ด๋๋ฆฐ๊ฑฐ ํ๋์ฉ ๋จผ์ ์ฐ์ด์ฃผ๊ณ ํ๊ทธ ์ ์ฒด ์ฐ์ด์ฃผ๊ณ ํจ์ ๋๋๋ฉด ๋ฐฐ์ด ์ ์ฒด ์ฐ์ด์ฃผ๊ณ ์ฝ์๋.
์ผ๋ฆฌ์คํธํจ์๊ฐ ํน์ดํ ๊ฑฐ๋ค. ์คํธ๋ง์ผ๋ก ์คํ ํด๋ก์ง ํ๊ทธ ๋ฐ๋ก ์ฐ๊ณ ๋ชฉ๋ก๋ง๋ค๊ธฐ๋ฅผ for๋ฃจํ๋ก ๋ง๋ค๊ธฐ.
17. ๋ฆฌ์คํธ ์ญ์ ๊ธฐ๋ฅ ์ถ๊ฐ
<body> <form> <input type="text" id="item" autofocus="true"> <button type="button" id="add" class="button"> ์ถ๊ฐ</button><br> <div id="itemList"></div> </form> </body>
<script type="text/javascript"> var itemList = []; window.onload = function () { var addBtr = document.querySelector("#add"); addBtr.addEventListener("click", addList); } function addList() { var item = document.querySelector("#item").value; if (item != null) { itemList.push(item); document.querySelector("#item").value = ""; document.querySelector("#item").focus(); } showList(); console.log(itemList); } function showList() {//์ญ์ ๋ ์ถ๊ฐ ๋ฐ์์ ๋ฐฐ์ด์์ ์๋ฃ ๊บผ๋ด์์ span ํ๊ทธ์ ๋ฐฐ์ด๋ฐฉ๋ฒํธ ์ง์ var list = "<ul>"; for (var i = 0; i < itemList.length; i++) { console.log(itemList[i]); list += "<li>" + itemList[i] + " <span class='close' id=" + i + ">X</span></li>"; } list += "</ul>"; console.log(list); document.querySelector("#itemList").innerHTML = list;//ํ๋ฉด์ x ํ์์ ๋ฐฐ์ด๋ฐฉ๋ฒํธ ์ง์ ์๋ฃ ํ ๋์์ค var remove = document.querySelectorAll('.close'); //x์ ์ด๋ฒคํธ ์ถ๊ฐ for (var i = 0; i < remove.length; i++) { remove[i].addEventListener('click', removeList); } } function removeList() { var id = this.getAttribute('id'); //์ญ์ ํ ์์ ๋ฒํธ(id) ์ป๊ธฐ console.log('remove list'); itemList.splice(id, 1); //์ญ์ ์๋ฃ showList();//๋ค์ ๋ชฉ๋ก ๋์์ span ๋ฐ ์ด๋ฒคํธ์ฒ๋ฆฌ ๋ค์ } </script>
๋ ๊ณต๋ฐฑ์ ์๋ฏธํ๋ค
์ผ๋ฆฌ์คํธ์์ li ์์ span ํ๊ทธ๋ฅผ ์ถ๊ฐํ๋ค. ํด๋์ค๋ close๋ก, id๋ ๋ฐฐ์ด ์ธ๋ฑ์ค๋ก, X๋ฅผ ํ์
์ด๊ฒ ์ด์ ๋ชฉ๋ก ์ถ๋ ฅ๋ ๋๋ง๋ค ๊ฐ์ด ๋์ค๋ ํํ๋ค.
์ผ๋จ ์ถ๋ ฅ์ ๊ฐ์ด ๋๋๋ฐ ์ด์ ์ด๋ฒคํธ๊ฐ ์์. ๋ฃ์ด์ค์ผํ๋ค.
์๋์ ํด๋ก์ฆ ํด๋์ค ์ ๋ ํ๊ณ ๊ทธ ํด๋์ค์ ๊ฐฏ์๋งํผ ๋ฐ๋ณต๋ฌธ ๋๋ ค์ ์์ ํ๋ํ๋ ๋ง๋ค ์ญ์ ์ด๋ฒคํธ ์ถ๊ฐ. ๊ทธ ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ ๋ฆฌ๋ฌด๋ธ๋ฆฌ์คํธ.
this.getAttribute๋ ์์ฑ์ ๊ฐ์ ธ์ฌ ์ ์๋ค. id์์ฑ์ ๊ฐ์ ธ์์
array.splice( start, count )
๋ฐฐ์ด์ splice() ํจ์๋ ์ํ๋ ์์น์ ์์๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํ ์ ์๊ฒํ๋ค.
id๋ถํฐ 1๊ฐ๋ฅผ ์ญ์ ํ๋๊น ๊ทธ๋ฅ ์งํผ์ ์ญ์ ๋๋๊ฒ.
์ญ์ ํ ๋ค์ ์ผ๋ฆฌ์คํธ๋ฅผ ํธ์ถํด์ ์ด๋ฒคํธ์ฒ๋ฆฌ ๊ณ์.
๋ฐ์ํ'JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
jQuery ์ ์ด์ฟผ๋ฆฌ ์ด๋ฒคํธ, Ajax ๋น๋๊ธฐ ์ฒ๋ฆฌ (0) 2020.09.25 jQeury ์ ์ด์ฟผ๋ฆฌ ๊ธฐ๋ณธ๋ฌธ๋ฒ, ์ ํ์, ํํฐ (0) 2020.09.24 ์๋ฐ์คํฌ๋ฆฝํธ ์ด๋ฒคํธ ํธ๋ค๋ง ์ฐ์ต1 (0) 2020.09.11 ์๋ฐ์คํฌ๋ฆฝํธ form ๊ฐ์ฒด, ์ด๋ฒคํธ ํธ๋ค๋ง (3) 2020.09.10 ์๋ฐ์คํฌ๋ฆฝํธ DOM ๊ฐ์ฒด ์ ์ด (0) 2020.09.09