Backend
home

2024. 6. 20 - JavaScript

JavaScript

๋ฌธ์„œ๊ฐ์ฒด

โ€ข
์บ์ŠคํŒ… : ๋ฌธ์„œ๊ฐ์ฒด ์ƒ์„ฑ
โ€ข
์—˜๋ฆฌ๋จผํŠธ ์‚ญ์ œ, ๋ถ€๋ชจ๊ฐ์ฒด.removeChild(์ž์‹ ๊ฐ์ฒด) ๊ด€๋ จ ๋‚ด์šฉ
<script> // ์—˜๋ฆฌ๋จผํŠธ ์‚ญ์ œ // ๋ถ€๋ชจ๊ฐ์ฒด.removeChild(์ž์‹ ๊ฐ์ฒด) document.addEventListener('DOMContentLoaded', () => { // ๋ถ€๋ชจ // const div = document.querySelector('div') // const h3 = document.querySelector('div > h3') // div.removeChild(h3) const delBtn = document.querySelector('div > input[type=button]') // delBtn.onclick = (event) => { // const div = document.querySelector('div') // const h3 = document.querySelector('div > h3') // div.removeChild(h3) // } delBtn.addEventListener('click', () => { const div = document.querySelector('div') const h3 = document.querySelector('div > h3') div.removeChild(h3) }) }) function delEl() { const div = document.querySelector('div') const h3 = document.querySelector('div > h3') div.removeChild(h3) } </script> <body> <div> <h3>์‚ญ์ œ ๋Œ€์ƒ</h3> <p>๋‚ด์šฉ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.</p> <input type="button" style="color: red" value="์‚ญ์ œ"> <!-- <input type="button" onClick="delEl()" style="color: red" value="์‚ญ์ œ"> - ๊ณ ์ „ ๋ฐฉ์‹ --> </div> </body>
JavaScript
๋ณต์‚ฌ
โ€ข
ํ‚ค๋ณด๋“œ ์ด๋ฒคํŠธ ์ ์šฉ
<script> // ํ‚ค๋ณด๋“œ ์ด๋ฒคํŠธ // keydown : ํ‚ค๊ฐ€ ๋ˆŒ๋ฆด๋•Œ ๋ฐœ์ƒ์„ ํ•จ // keypress : ํ‚ค๊ฐ€ ์ž…๋ ฅ๋  ๋•Œ x // keyup: ํ‚ค๊ฐ€ ๋–จ์–ด์งˆ ๋•Œ m document.addEventListener('DOMContentLoaded', () => { const textarea = document.querySelector('textarea') textarea.addEventListener('keyup', (event) => { const str_len = event.currentTarget.value.length // currentTarget: ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ ๋Œ€์ƒ์„ ๊ฐ€๋ฆฌํ‚ด const span_cnt = document.getElementById('cnt') // ๊ธ€์ž ์ˆ˜ ์ œํ•œ span_cnt.textContent = str_len if (str_len > 100) { alert('100๊ธ€์ž ๊นŒ์ง€ ์ž‘์„ฑ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.') } }) </script> <body> <!-- ๊ธ€์ž ์ˆ˜ --> <h1><span id="cnt"></span> / 100</h1> <textarea cols="20" rows="10"> </textarea> </body>
JavaScript
๋ณต์‚ฌ
โ€ข
์„ ํƒ ํ•ญ๋ชฉ ์ ์šฉ
<script> const select = document.querySelector('Select') const h2_print = document.querySelector('h2.print') select.addEventListener('change', (event) => { const options = event.currentTarget.options const index = event.currentTarget.options.selectedIndex h2_print.textContent = `์„ ํƒ ํ•ญ๋ชฉ : ${options[index].textContent}` }) </script> <body> <h2 class="print"></h2> <!-- ์„ ํƒ, ์œ„์น˜๊ฐ’์„ ๊ฐ€์ง€๊ณ  ๊ตฌ๋ถ„ --> <select> <option>HTML5</option> <option>CSS</option> <option>javascript</option> <option>jquery</option> <option>react.js</option> </select> </body>
JavaScript
๋ณต์‚ฌ
โ€ข
radio button ์ ์šฉ
<script> const h3_output = document.getElementById('output') const radios = document.querySelectorAll('[name=lang]') // ๋ชจ๋“  radio์— ์ด๋ฒคํŠธ ์—ฐ๊ฒฐ radios.forEach((radio) => { // ์ด๋ฒคํŠธ ์—ฐ๊ฒฐ radio.addEventListener('change', (event) => { const current = event.currentTarget.radio if (current.checked) { h3_output.textContent = `์„ ํƒ ์–ธ์–ด : ${current.value.checked}` } }) }) </script> <body> <h3>๊ด€์‹ฌ ์žˆ๋Š” ์–ธ์–ด๋ฅผ ์„ ํƒํ•˜์„ธ์š”!</h3> <input type="radio" name="lang" value="JAVA" checked> <span>JAVA</span> <input type="radio" name="lang" value="HTML5"> <span>HTML5</span> <input type="radio" name="lang" value="Javascript"> <span>Javascript</span> <h3 id="output">์„ ํƒ ์–ธ์–ด : JAVA</h3> </body>
JavaScript
๋ณต์‚ฌ
โ€ข
todo list
โ—ฆ
์นด์šดํŠธ ๋ณ€์ˆ˜๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์‚ญ์ œ ๊ธฐ๋Šฅ ์ ์šฉ
โ–ช
์‚ญ์ œ ๋Œ€์ƒ โ†’ div
โ–ช
const key = keyCount++
โ—ฆ
checkbox, button ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ
โ—ฆ
ํ• ์ผ ์ถ”๊ฐ€ ํ›„ ์ปค์„œ๊ฐ€ ํ…์ŠคํŠธ๋ฐ•์Šค์— ์œ„์น˜ํ•˜๋„๋ก focus() ์‚ฌ์šฉ
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>js_todo</title> <script> document.addEventListener('DOMContentLoaded', () => { // ์บ์ŠคํŒ… const input_newTodo = document.querySelector('#newTodo') const add_Btn = document.querySelector('#addBtn') const todoList = document.querySelector('#todoList') // ์นด์šดํŠธ ๋ณ€์ˆ˜ let keyCount = 0 add_Btn.addEventListener('click', () => { if (input_newTodo.value.trim() === '') { alert('ํ• ์ผ์„ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”!!!') return } // alert(input_newTodo.value.trim()) // div > checkbox, span, button const div_new = document.createElement('div') const key = keyCount++ div_new.setAttribute('data-key', key) // checkbox const checkbox = document.createElement('input') checkbox.type = 'checkbox' // checkbox ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ checkbox.addEventListener('change', (event) => { div_new.style.textDecoration = event.currentTarget.checked ? 'line-through' : '' }) // span const span_todostr = document.createElement('span') span_todostr.textContent = input_newTodo.value // button const button_del = document.createElement('button') button_del.textContent = 'ํ• ์ผ ์‚ญ์ œ' // button ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ button_del.addEventListener('click', (event) => { // ์‚ญ์ œ ๋Œ€์ƒ - > div const div_del = document.querySelector(`[data-key="${key}"]`) todoList.removeChild(div_del) }) div_new.appendChild(checkbox) div_new.appendChild(span_todostr) div_new.appendChild(button_del) todoList.appendChild(div_new) input_newTodo.value = '' input_newTodo.focus() // ํ• ์ผ ์ถ”๊ฐ€ ํ›„ ์ปค์„œ๊ฐ€ ํ…์ŠคํŠธ๋ฐ•์Šค์— ์œ„์น˜ํ•จ }) }) </script> </head> <body> <!-- ์‚ฌ์šฉ์ž๊ฐ€ ํ• ์ผ์„ ์ž…๋ ฅํ•˜๋ฉด ๋ฆฌ์ŠคํŠธ์— ์ถ”๊ฐ€ --> <h1>Todo List</h1> ํ• ์ผ ์ถ”๊ฐ€ : <input type="text" id="newTodo"> <button id="addBtn">ํ• ์ผ ์ถ”๊ฐ€</button> <hr> <div id="todoList"></div> </body> </html>
JavaScript
๋ณต์‚ฌ
โ€ข
class
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>js_class</title> <script> // ๊ฐ์ฒด => {} // ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ํ‹€ => // new ํ‹€() => ํ‹€์—์„œ ์ •์˜๋œ ๋ณ€์ˆ˜๋‚˜ ํ•จ์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ ๊ฐ์ฒด ์ƒ์„ฑ // class ํด๋ž˜์Šค ์ด๋ฆ„ { ๋ณ€์ˆ˜, ํ•จ์ˆ˜ } => new ํด๋ž˜์Šค์ด๋ฆ„() let obj_student = { name: '์†ํฅ๋ฏผ', sno: '21145712', major: '์ปดํ“จํ„ฐ' } class Student { constructor(name, sno, major) { this.name = name this.sno = sno this.major = major } } let student1 = new Student(); console.log(typeof (student1)) // object const students = [ new Student('son', '111', 'computer'), // => {name: '', sno: '', major: ''} new Student('son', '123', 'computer'), new Student('son', '123', 'computer') ] console.log(students) // students.push( new Student('son', '111', 'computer')) // local_storage: ๋ฐ์ดํ„ฐ์— ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ๊ณณ // getItem : ํ‚ค๊ฐ’์œผ๋กœ ๋ถˆ๋Ÿฌ์˜ด // setItem : local_storage์— ์ €์žฅ let saved_data = localStorage.getItem('members') console.log('saved_data', saved_data) //if (saved_data == null) { localStorage.setItem('members', 'members List') localStorage.removeItem('members') //} </script> </head> <body> </body> </html>
JavaScript
๋ณต์‚ฌ

๊ธฐํƒ€