Hello creators ๐
2-5_Quiz_JQuery ์ฐ์ตํ๊ธฐ ๋ณธ๋ฌธ
2-5_Quiz_JQuery ์ฐ์ตํ๊ธฐ
๋ถ์๋งค๋_HA 2023. 10. 5. 07:23โ . ์ด๋ฒ ํ์ฐจ ํ์ต ๋ชฉํ (goal)
1. ๋ฐฐ์ฐ๊ณ ์ ํ๋ ๊ฒ
- ์ง๊ธ๊น์ง ๋ฐฐ์ ๋๊ฑฐ ํ์ฉํด์ ํด์ฆ ํ๊ธฐ
โ ก. ํด์ฆ ํ๊ธฐ ์ฌ์ ํ์ผ ๋ง๋ค๊ธฐ
1. ์ด ์ฝ๋ ์ค๋ํซ ๋ณต์ฌํด์ ์์
<!doctype html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>jQuery ์ฐ์ตํ๊ณ ๊ฐ๊ธฐ!</title>
<!-- JQuery๋ฅผ import ํฉ๋๋ค -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<style type="text/css">
div.question-box {
margin: 10px 0 20px 0;
}
</style>
<script>
function q1() {
// 1. input-q1์ ์
๋ ฅ๊ฐ์ ๊ฐ์ ธ์จ๋ค. $('# .... ').val() ์ด๋ ๊ฒ!
// 2. ๋ง์ฝ ์
๋ ฅ๊ฐ์ด ๋น์นธ์ด๋ฉด if(์
๋ ฅ๊ฐ=='')
// 3. alert('์
๋ ฅํ์ธ์!') ๋์ฐ๊ธฐ
// 4. alert(์
๋ ฅ๊ฐ) ๋์ฐ๊ธฐ
}
function q2() {
// 1. input-q2 ๊ฐ์ ๊ฐ์ ธ์จ๋ค.
// 2. ๋ง์ฝ ๊ฐ์ ธ์จ ๊ฐ์ @๊ฐ ์์ผ๋ฉด (includes ์ด์ฉํ๊ธฐ - ๊ตฌ๊ธ๋ง!)
// 3. info@gmail.com -> gmail ๋ง ์ถ์ถํด์ ( .split('@') ์ ์ด์ฉํ์!)
// 4. alert(๋๋ฉ์ธ ๊ฐ);์ผ๋ก ๋์ฐ๊ธฐ
// 5. ๋ง์ฝ ์ด๋ฉ์ผ์ด ์๋๋ฉด '์ด๋ฉ์ผ์ด ์๋๋๋ค.' ๋ผ๋ ์ผ๋ฟ ๋์ฐ๊ธฐ
}
function q3() {
// 1. input-q3 ๊ฐ์ ๊ฐ์ ธ์จ๋ค. let txt = ... q1, q2์์ ํ๋ ๊ฑธ ์ฐธ๊ณ !
// 2. ๊ฐ์ ธ์จ ๊ฐ์ ์ด์ฉํด names-q3์ ๋ถ์ผ ํ๊ทธ๋ฅผ ๋ง๋ ๋ค. (let temp_html = `<li>${txt}</li>`) ์๋ ๊ฒ!
// 3. ๋ง๋ค์ด๋ temp_html์ names-q3์ ๋ถ์ธ๋ค.(jQuery์ $('...').append(temp_html)์ ์ด์ฉํ๋ฉด ๊ตฟ!)
}
function q3_remove() {
// 1. names-q3์ ๋ด๋ถ ํ๊ทธ๋ฅผ ๋ชจ๋ ๋น์ด๋ค.(jQuery์ $('....').empty()๋ฅผ ์ด์ฉํ๋ฉด ๊ตฟ!)
}
</script>
</head>
<body>
<h1>jQuery + Javascript์ ์กฐํฉ์ ์ฐ์ตํ์!</h1>
<div class="question-box">
<h2>1. ๋น์นธ ์ฒดํฌ ํจ์ ๋ง๋ค๊ธฐ</h2>
<h5>1-1. ๋ฒํผ์ ๋๋ ์ ๋ ์
๋ ฅํ ๊ธ์๋ก ์ผ๋ฟ ๋์ฐ๊ธฐ</h5>
<h5>[์์ฑ๋ณธ]1-2. ๋ฒํผ์ ๋๋ ์ ๋ ์นธ์ ์๋ฌด๊ฒ๋ ์์ผ๋ฉด "์
๋ ฅํ์ธ์!" ์ผ๋ฟ ๋์ฐ๊ธฐ</h5>
<input id="input-q1" type="text" /> <button onclick="q1()">ํด๋ฆญ</button>
</div>
<hr />
<div class="question-box">
<h2>2. ์ด๋ฉ์ผ ํ๋ณ ํจ์ ๋ง๋ค๊ธฐ</h2>
<h5>2-1. ๋ฒํผ์ ๋๋ ์ ๋ ์
๋ ฅ๋ฐ์ ์ด๋ฉ์ผ๋ก ์ผ๋ฟ ๋์ฐ๊ธฐ</h5>
<h5>2-2. ์ด๋ฉ์ผ์ด ์๋๋ฉด(@๊ฐ ์์ผ๋ฉด) '์ด๋ฉ์ผ์ด ์๋๋๋ค'๋ผ๋ ์ผ๋ฟ ๋์ฐ๊ธฐ</h5>
<h5>[์์ฑ๋ณธ]2-3. ์ด๋ฉ์ผ ๋๋ฉ์ธ๋ง ์ผ๋ฟ ๋์ฐ๊ธฐ</h5>
<input id="input-q2" type="text" /> <button onclick="q2()">ํด๋ฆญ</button>
</div>
<hr />
<div class="question-box">
<h2>3. HTML ๋ถ์ด๊ธฐ/์ง์ฐ๊ธฐ ์ฐ์ต</h2>
<h5>3-1. ์ด๋ฆ์ ์
๋ ฅํ๋ฉด ์๋ ๋์ค๊ฒ ํ๊ธฐ</h5>
<h5>[์์ฑ๋ณธ]3-2. ๋ค์ง์ฐ๊ธฐ ๋ฒํผ์ ๋ง๋ค๊ธฐ</h5>
<input id="input-q3" type="text" placeholder="์ฌ๊ธฐ์ ์ด๋ฆ์ ์
๋ ฅ" />
<button onclick="q3()">์ด๋ฆ ๋ถ์ด๊ธฐ</button>
<button onclick="q3_remove()">๋ค์ง์ฐ๊ธฐ</button>
<ul id="names-q3">
<li>์ธ์ข
๋์</li>
<li>์๊บฝ์ </li>
</ul>
</div>
</body>
</html>
โ ข. DJ ๋จผ์ ํด๋ณด๊ธฐ
1. ์ ๋ ฅํ ๊ธ์๊ฐ ์์ผ๋ฉด, ํด๋น ๊ธ์๋ก alert ๋์ฐ๊ธฐ
1) ์ ๋ต
- ์ฐ์ , ํด์ฆ ์๋ด์ ๋์จ๋๋ก ํ๊ณ ์์.
2) jquery ์จ์ ๊ฐ ๊ฐ์ ธ์ค๊ธฐ #jquery_๊ฐ๊ฐ์ ธ์ค๊ธฐ
- '๊ฐ ๊ฐ์ ธ์ค๊ธฐ' ์์ ์ฝ๋ ์ค๋ํซ
$('#__ํ๊ฒid__').val()
3) ์ฐ์ ๋๋ ์ฝ๋
#jquery_๊ฐ๊ฐ์ ธ์ค๊ธฐ_์์์ฝ๋
function q1() {
// 1. input-q1์ ์
๋ ฅ๊ฐ์ ๊ฐ์ ธ์จ๋ค. $('# .... ').val() ์ด๋ ๊ฒ!
// 2. ๋ง์ฝ ์
๋ ฅ๊ฐ์ด ๋น์นธ์ด๋ฉด if(์
๋ ฅ๊ฐ=='')
// 3. alert('์
๋ ฅํ์ธ์!') ๋์ฐ๊ธฐ
// 4. alert(์
๋ ฅ๊ฐ) ๋์ฐ๊ธฐ
let input_value = $('#input-q1').val()
if (input_value == 0) {
alert('์
๋ ฅํ์ธ์~')
}
else {
alert(input_value)
}
}
3) design critic
a. ํํฐ๋ ์ฝ๋
- ๋ฐฐ์ด์
- ํ
์คํธ ๋ณ์ ์
๋ ฅ์ ->
txt
๋ฅผ ๊ด์ต์ ์ผ๋ก ์ธ ์ ์๋ค๋ ๊ฒ - ๋น์นธ์
' '
์ด๋ ๊ฒ ํํํ ์ ์๋ค๋ ๊ฒ. โญโญโญโญโญfunction q1() { // 1. input-q1์ ์ ๋ ฅ๊ฐ์ ๊ฐ์ ธ์จ๋ค. $('# .... ').val() ์ด๋ ๊ฒ! // 2. ๋ง์ฝ ์ ๋ ฅ๊ฐ์ด ๋น์นธ์ด๋ฉด if(์ ๋ ฅ๊ฐ=='') // 3. alert('์ ๋ ฅํ์ธ์!') ๋์ฐ๊ธฐ // 4. alert(์ ๋ ฅ๊ฐ) ๋์ฐ๊ธฐ let txt = $('#input-q1').val() if (txt == '') { alert('์ ๋ ฅํ์ธ์~') } else { alert(txt) } }
- ํ
์คํธ ๋ณ์ ์
๋ ฅ์ ->
2. ์ด๋ฉ์ผ ํ๋ณ ํจ์
1) ํด์ผ ํ๋ ๊ฒ
- ๋ฒํผ ๋๋ ์ ๋ -> ์ ๋ ฅ๋ฐ์ ์ด๋ฉ์ผ ๋๋ฉ์ธ alert ๋์ฐ๊ธฐ
- @ ์์ด์ -> ์ด๋ฉ์ผ ์๋๋ฉด -> '์ด๋ฉ์ผ ์๋๋๋ค.'' alert ๋์ฐ๊ธฐ
2) ํด๋ณด๊ธฐ
#jquery_includes_ํน์ ๋ฌธ์ํฌํจ์ฌ๋ถ_์์์ฝ๋
#jquery_split_ํน์ ๋ฌธ์๊ธฐ์ค์ชผ๊ฐ๊ธฐ_์์์ฝ๋
function q2() {
// 1. input-q2 ๊ฐ์ ๊ฐ์ ธ์จ๋ค.
// 2. ๋ง์ฝ ๊ฐ์ ธ์จ ๊ฐ์ @๊ฐ ์์ผ๋ฉด (includes ์ด์ฉํ๊ธฐ - ๊ตฌ๊ธ๋ง!)
// 3. info@gmail.com -> gmail ๋ง ์ถ์ถํด์ ( .split('@') ์ ์ด์ฉํ์!)
// 4. alert(๋๋ฉ์ธ ๊ฐ);์ผ๋ก ๋์ฐ๊ธฐ
// 5. ๋ง์ฝ ์ด๋ฉ์ผ์ด ์๋๋ฉด '์ด๋ฉ์ผ์ด ์๋๋๋ค.' ๋ผ๋ ์ผ๋ฟ ๋์ฐ๊ธฐ
let input_email = $('#input-q2').val()
if (input_email.includes('@') == true) {
alert(input_email.split('@')[1])
}
else {
alert('์ด๋ฉ์ผ์๋๋๋ค.')
}
}
๐ ์ฐ์ , ๋์๊ฐ๊ธด ํจ
3) design critic
a. ํํฐ๋ ์ ๊ทผ
- colsole.log ๋ก ๋จผ์ includes ํจ์ ํ
์คํธ -> console f12 ์ด์ด์ ํ์ธ #What_i_learned
- split ํจ์ ์จ์ ๋๋ฉ์ธ๋ง ์ทจํ๋ ค๊ณ ํ ๋, console ์ฐฝ ์ด์ด์ ํ
์คํธ ํ๊ณ > ํด๋น line ์ ๋ณต์ฌํด์ ๊ฐ์ ธ์จ๋ค. #What_i_learned
- ๊ทธ๋ฐ๋ฐ, ๋ณ์๋ฅผ
txt
๋ก ํ๋ฉด, ์์ q1 ํจ์์์ ์ ๋ ฅํ ๊ฐ์ด๋ ๊ฒน์น๋๊ฑฐ ์๋? (overwrite) ๋๋๊ฑฐ ์๋? โโโโโโโโโโ #์ง๋ฌธ์ฌํญ
- ํํฐ๋ ์ฝ๋
function q2() { let txt = $('#input-q2').val() if (txt.includes('@') == true) { alert(txt.split('@')[1].split('.')[0]) } else { alert('์ด๋ฉ์ผ์๋๋๋ค.') } }
3. HTML ๋ถ์ด๊ธฐ/์ง์ฐ๊ธฐ ์ฐ์ต
1) ์ด๋ฆ ์ ๋ ฅ -> ๋ถ์ด๊ธฐ ํด๋ฆญ -> ์๋ ๋์ค๊ฒ ํ๊ธฐ
- ํ๊ณ ์ ํ๋ ๊ฒ
- ๋์ค๊ฒ ํ๋ ๊ฑด = ํด๋น id ์, append ( ) ๋ฅผ ์ด๋ค.
- ์ฌ์ ์ ๋ฌด์์ append ํ ์ง temp ๋ณ์๊ฐ ์ ์ ๋์ด์ผ ํจ
- ๊ทธ๋ฌ๋ฉด if ํด๋ฆญ ๋๋ฉด > ๋ถ์ฌ์ง๋ ํจ์๊ฐ ์คํ
- ๊ทธ ํจ์์๋ 1) html temp ๋ณ์ ์ ์ธ 2) ๊ทธ๊ฒ jquery ๋ก html ์ด ๋๊ณ
a. ์ฐ์ ๋๋ ์ฝ๋
#jquery_append_์ถ๊ฐ๋ก๋ถ์ด๊ธฐ_์์์ฝ๋
#jquery_๋ณ์ํ์ฉ๊ฝ์์ฃผ๊ธฐ_์์์ฝ๋
#jquery_์์html์์ง์งhtml๋ง๋ค๊ธฐ_์์์ฝ๋
function q3() {
// 1. input-q3 ๊ฐ์ ๊ฐ์ ธ์จ๋ค. let txt = ... q1, q2์์ ํ๋ ๊ฑธ ์ฐธ๊ณ !
// 2. ๊ฐ์ ธ์จ ๊ฐ์ ์ด์ฉํด names-q3์ ๋ถ์ผ ํ๊ทธ๋ฅผ ๋ง๋ ๋ค. (let temp_html = `<li>${txt}</li>`) ์๋ ๊ฒ!
// 3. ๋ง๋ค์ด๋ temp_html์ names-q3์ ๋ถ์ธ๋ค.(jQuery์ $('...').append(temp_html)์ ์ด์ฉํ๋ฉด ๊ตฟ!)
// jquery ๋ก ๊ฐ ๊ฐ์ ธ์ค๊ธฐ
let input_attach = $('#input-q3').val()
// ๋ณ์ํ์ฉํด์ ๊ฝ์์ค๊ฑธ -> ์์ html ๋ก
let temp_html = `<li> ${input_attach} </li>`
// ์ด๋๋ก id ๋ฅผ ์ก์์ผ ํ๋! ๊ณ ๋ฏผ์ด ๋จ
$('#names-q3').append(temp_html)
}
๐ ์ฐ์ ๋์ค๊ธด ํจ
๐ onclick ํจ์๋ ์ด๋ฆ ๋ถ์ด๊ธฐ
๋ฒํผ์ ์์
b. what i learned
- ==์ด๋ค HTML ํ๊ทธ๊ฐ ๋์ด๋์ผ ํด?== ๋ฅผ ํ์ธ
- ์ฌ๊ธฐ์์๋ ์๊บฝ์ ๋ฆฌ์คํธ๊ฐ ๋์ด๋์ผ ํด!
- ์ด๊ฑธ ์ฒ์์ ์ ๋ชป ์ฐพ์์ โญโญโญโญโญโญโญ
- '๊ทธ๊ฑธ ==ํฌํจํ๊ณ == ์๋ ๊ฑด?'' โญโญโญโญโญ
- ๊ทธ๊ฑธ ==ํฌํจํ๊ณ ์๋ ํ๊ทธ==๊ฐ ๋ญ์ง ์ ์ดํด!
- ์ด๊ฑฐ์ ๋ํด์ jquery ๋จน์ฌ์ฃผ๋ฉด ๋จ
2) ์ด๋ฆ ์ง์๋ณด๊ธฐ
a. ์ฐ์ ๋๋ ์ฝ๋ #jquery_empty_์์์ฝ๋
function q3_remove() {
// 1. names-q3์ ๋ด๋ถ ํ๊ทธ๋ฅผ ๋ชจ๋ ๋น์ด๋ค.(jQuery์ $('....').empty()๋ฅผ ์ด์ฉํ๋ฉด ๊ตฟ!)
$('#names-q3').empty()
}
๐ญ What i learned
#
ํ์ฉํ๋ฉด, ์ํ๋ ์ค๋ํซ์ ๋ฐ๋ก ์ฐพ์ ์ ์์ง ์์๊น.'1์ฐจ ์ฐ์ ๋๋ ์ฝ๋' ๋ก ๊ธฐ๋กํ๊ณ -> ๊ทธ ๋ค์ design critic ๋ชฉ์ฐจ๋ฅผ ๋ฃ๋๊ฒ ์ข์ ๊ฑฐ ๊ฐ์
ํ๊ทธ๋ฅผ ํ์ฉํด์,
#jquery_๋ณ์ํ์ฉ๊ฝ์์ฃผ๊ธฐ_์์์ฝ๋
์ด๋ ๊ฒ ํ๋ฉด -> ๋์ค์ ๊ฐ์ ธ์ค๊ธฐ ํธํจ โญโญโญ๋น์นธ์
' '
์ด๋ ๊ฒ ํํํ ์ ์๋ค๋ ๊ฒ. โญโญโญโญโญincludes ๊ฐ์ ์๋ก์ด ํจ์๋ฅผ ํ ์คํธ ํ ๋, console f12 ์ด์ด์ ํ์ธ
jquery_append ๊ด๋ จ
- '์ด๋ค ==html tag== ๋๋ฆฌ๊ณ ์ถ์๊ฑฐ์ผ?' โญโญโญโญโญ ๋ฅผ ๋จผ์ ํ์ธ
- ๋๋ฆฌ๊ณ ์ถ์ tag ๋ฅผ ==ํฌ๊ดํ๋ tag== ์ ์ด๋ฆํ๋ฅผ ๋ถ์ธ๋ค.
- ๊ทธ๋ฌ๋ฉด, ํฌ๊ดํ๋ ํ๊ทธ์ append ํ๋ ์์ด ๋๋ค.
- ๊ทธ๋ฐ๋ฐ, ๋ณ์๋ฅผ
txt
๋ก ํ๋ฉด, ์์ q1 ํจ์์์ ์ ๋ ฅํ ๊ฐ์ด๋ ๊ฒน์น๋๊ฑฐ ์๋? (overwrite) ๋๋๊ฑฐ ์๋? โโโโโโโโโโ
'[WEB & AI] (feat. ์ทจ์ค) > ์คํ๋ฅดํ์ฝ๋ฉํด๋ฝ_์น๊ฐ๋ฐ์ข ํฉ๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
2-7_Ajax ์์ํ๊ธฐ (0) | 2023.10.06 |
---|---|
2-6_์๋ฒ-ํด๋ผ์ด์ธํธ ํต์ ์ดํดํ๊ธฐ (4) | 2023.10.05 |
2-4_JQuery ์ ์ฉํ๊ธฐ(ํฌ์คํ ๋ฐ์ค) (0) | 2023.10.05 |
2-3_JQuery ๋ค๋ค๋ณด๊ธฐ (2) | 2023.10.02 |
2-2_JQuery ์์ํ๊ธฐ (0) | 2023.10.02 |