javascript:void(0);
์ JavaScript์์ ์๋ฌด๋ฐ ๋์์ ํ์ง ์๊ณ , ํ์ด์ง๋ฅผ ๋ค์ ๋ก๋ํ๊ฑฐ๋ ์ด๋์ํค์ง ์๋๋ก ํ๋ ๋ฐฉ๋ฒ์
๋๋ค. ์ฃผ๋ก ๋งํฌ(<a>
) ์์์ ์ฌ์ฉ๋์ด, ๋งํฌ๊ฐ ํด๋ฆญ๋์์ ๋ ๋ค๋ฅธ ํ์ด์ง๋ก ์ด๋ํ๊ฑฐ๋ ์๋ฌด ํ์ด์ง ์ก์
์ด ๋ฐ์ํ์ง ์๋๋ก ํ๊ธฐ ์ํด ์ฐ์
๋๋ค.
<a href="javascript:void(0);">Click me</a>
์์ ์ฝ๋์์ ๋งํฌ๋ฅผ ํด๋ฆญํ๋๋ผ๋ ํ์ด์ง๊ฐ ๋ค์ ๋ก๋๋๊ฑฐ๋ ๋ค๋ฅธ ๊ณณ์ผ๋ก ์ด๋ํ์ง ์์ต๋๋ค. ์ด๋ ์ฃผ๋ก ์๋ฐ์คํฌ๋ฆฝํธ๋ก๋ง ๋์์ ์ ์ดํ๊ณ ์ ํ ๋ ์ ์ฉํฉ๋๋ค.
$(".ํด๋์ค๋ช
").click(function () {
eventWinPop("");
});
๋ง์ฝ ํด๋์ค๋ช ์ด ๊ณต๋ฐฑ์ผ๋ก layout new ์ด๋ฐ์์ด๋ผ๋ฉด
.layout.new๋ก ์ ์ํด์ผ ํจ
HTML์ <a href="#top">
๊ฐ์ ๋งํฌ๋ฅผ ํด๋ฆญํ๋ฉด ํ์ด์ง ์๋จ์ผ๋ก ์ด๋ํ์ง๋ง, javascript:void(0);
๋ฅผ ์ฌ์ฉํ๋ฉด ๋งํฌ๋ฅผ ํด๋ฆญํด๋ ํ์ด์ง๊ฐ ์คํฌ๋กค๋๊ฑฐ๋ ์ด๋ํ์ง ์๋๋ก ๋ฐฉ์งํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ํ์ด์ง ์๋จ์ผ๋ก ์คํฌ๋กค์ ๋ฐฉ์งํ๊ณ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๊ธฐ ์ํ ์ฉ๋๋ก ์ฌ์ฉ๋ฉ๋๋ค.
html์ฝ๋ ๋ณต์ฌ<a href="javascript:void(0);" onclick="scrollToTop();">Scroll to Top</a>
<script>
function scrollToTop() {
window.scrollTo({top: 0, behavior: 'smooth'});
}
</script>
์ ์ฝ๋๋ ๋งํฌ๋ฅผ ํด๋ฆญํ๋ฉด ํ์ด์ง ์๋จ์ผ๋ก ์คํฌ๋กค๋๋๋ก ํ๋ ๋์์ ์ ์ํฉ๋๋ค. ๋งํฌ๋ javascript:void(0);
์ ์ฌ์ฉํด ๊ธฐ๋ณธ ์ด๋์ ๋ฐฉ์งํ๊ณ , JavaScript ํจ์๋ก ์คํฌ๋กค์ ์ง์ ์ ์ดํฉ๋๋ค.
ํด๋ฆญ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด ํจ์๋ช ์๋ฐ์คํฌ๋ฆฝํธ ํจ์๊ฐ ์คํ๋ฉ๋๋ค.
event
๋ ์๋ฐ์คํฌ๋ฆฝํธ์์ ์ด๋ฒคํธ ๊ฐ์ฒด๋ฅผ ์๋ฏธํฉ๋๋ค. ์ด ๊ฐ์ฒด๋ ํน์ ์ด๋ฒคํธ(์: ํด๋ฆญ, ํค๋ณด๋ ์
๋ ฅ ๋ฑ)๊ฐ ๋ฐ์ํ์ ๋ ํด๋น ์ด๋ฒคํธ์ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ๋ด๊ณ ์์ต๋๋ค.
<a href="javascript:void(0);" onclick="handleClick(event)">ํด๋ฆญํ์ธ์</a>
์ HTML์์ ๋งํฌ๋ฅผ ํด๋ฆญํ๋ฉด handleClick
ํจ์๊ฐ ์คํ๋๋ฉฐ, event
๋ผ๋ ๊ฐ์ฒด๊ฐ ์๋์ผ๋ก ํจ์์ ์ ๋ฌ๋ฉ๋๋ค.
jfunction handleClick(event) {
console.log(event); // ํด๋ฆญ ์ด๋ฒคํธ์ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ์ถ๋ ฅ
event.preventDefault(); // ๊ธฐ๋ณธ ๋์(์: ๋งํฌ ์ด๋)์ ๋ง์
}
- ์ด๋ฒคํธ์ ๊ธฐ๋ณธ ๋์์ ๋ง์ ์ ์์: ์๋ฅผ ๋ค์ด, ๋งํฌ ํด๋ฆญ ์ ํ์ด์ง๊ฐ ์ด๋ํ๋ ๊ธฐ๋ณธ ๋์์
event.preventDefault()
๋ก ๋ง์ ์ ์์ต๋๋ค. - ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ์์๋ฅผ ํ์ธํ ์ ์์:
event.target
์ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์๊ฐ ํด๋ฆญํ ์์์ ์ ๊ทผํ ์ ์์ต๋๋ค. - ์ด๋ฒคํธ์ ์ ํ๋ฅผ ์ ์ดํ ์ ์์:
event.stopPropagation()
์ ํตํด ์ด๋ฒคํธ๊ฐ ๋ถ๋ชจ ์์๋ก ์ ํ๋๋ ๊ฒ์ ๋ง์ ์ ์์ต๋๋ค.
event.target
: ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ์์.event.preventDefault()
: ๊ธฐ๋ณธ ๋์์ ๋ง์ (์: ๋งํฌ ํด๋ฆญ ์ ํ์ด์ง ์ด๋).event.stopPropagation()
: ์ด๋ฒคํธ๊ฐ ๋ถ๋ชจ ์์๋ก ์ ํ๋๋ ๊ฒ์ ๋ง์.
event
๊ฐ์ฒด๋ ๋ค์ํ ์ด๋ฒคํธ์ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ์ ๊ณตํ์ฌ, ์ฌ์ฉ์๊ฐ ํด๋ฆญํ ์์น, ๋ฐ์ํ ์ด๋ฒคํธ ์ข
๋ฅ ๋ฑ์ ๋ค๋ฃฐ ์ ์๊ฒ ๋์์ค๋๋ค.
-
์ด๋ฒคํธ ๊ฐ์ฒด ์ ๋ฌ ์ฌ๋ถ:
event
๊ฐ์ฒด๋ ๋ธ๋ผ์ฐ์ ์์ ์๋์ผ๋ก ์ ๋ฌ๋๋ฏ๋ก,onclick="ํจ์๋ช (event)"
๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ ๋๋ก ์ ๋ฌ๋์ด์ผ ํฉ๋๋ค. ๋ง์ฝevent
๊ฐ์ฒด๋ฅผ ํจ์์์ ์์ ํ์ง ๋ชปํ๋ค๋ฉด, ํจ์ ํธ์ถ ๋ถ๋ถ์ ๋ฌธ์ ๊ฐ ์์ ์ ์์ต๋๋ค.- ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ํธ์ถํ๋์ง ํ์ธํ์ธ์:
onclick="myFunction(event)"
-
์ด๋ฒคํธ ๊ฐ์ฒด์ ์ฌ์ฉ ๊ฐ๋ฅ ์ฌ๋ถ:
event
๊ฐ์ฒด๋ ์ด๋ฒคํธ ํธ๋ค๋ฌ ํจ์์์๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค. HTML ์์์onclick
์์ฑ์์ ์ง์ ํธ์ถํ๊ฑฐ๋, ์๋ฐ์คํฌ๋ฆฝํธ์์ ์ด๋ฒคํธ ๋ฆฌ์ค๋๋ฅผ ์ถ๊ฐํ ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์์:
<a href="#" onclick="handleClick(event)">ํด๋ฆญํ์ธ์</a>
-
๊ธฐ๋ณธ ๋์์ด ๋งํ์ง ์๋ ๋ฌธ์ :
event.preventDefault()
๋ฅผ ํธ์ถํด๋ ๊ธฐ๋ณธ ๋์(์: ๋งํฌ ์ด๋)์ด ๋งํ์ง ์๋๋ค๋ฉด, ์ด๋ฒคํธ ๊ฐ์ฒด๊ฐ ์ ๋๋ก ์ ๋ฌ๋์ง ์๊ฑฐ๋, ์ด๋ฒคํธ๊ฐ ์๋ชป๋ ๋ฐฉ์์ผ๋ก ๋ฐ์ธ๋ฉ๋์์ ์ ์์ต๋๋ค.event.preventDefault()
๊ฐ ํธ์ถ๋๊ธฐ ์ ์ ํ์ด์ง๊ฐ ์ด๋ํ๋ ๋ฑ์ ๋์์ด ์ผ์ด๋๋ฉด, ์ด๋ฒคํธ ๊ฐ์ฒด๋ฅผ ์ ๋๋ก ์ฒ๋ฆฌํ์ง ๋ชปํ ๊ฒ์ ๋๋ค.
-
๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ: ๋ง์ฝ
onclick="ํจ์๋ช (event)"
์ด ์์๋๋ก ์๋ํ์ง ์์ผ๋ฉด, ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.์์: ์ด๋ฒคํธ ๋ฆฌ์ค๋๋ก ์ฒ๋ฆฌํ๊ธฐ (์ถ์ฒ ๋ฐฉ์)
<a href="#" id="myLink">ํด๋ฆญํ์ธ์</a>
javascript์ฝ๋ ๋ณต์ฌdocument.getElementById("myLink").addEventListener("click", function(event) { event.preventDefault(); // ๊ธฐ๋ณธ ๋์์ ๋ง์ alert("์ด๋ฒคํธ๊ฐ ์ฒ๋ฆฌ๋์์ต๋๋ค."); });
์ด ๋ฐฉ์์์๋
event
๊ฐ์ฒด๊ฐ ์๋์ผ๋ก ํจ์์ ์ ๋ฌ๋๋ฉฐ,preventDefault()
๋ ํ์คํ๊ฒ ์๋ํฉ๋๋ค.
event
๊ฐ์ฒด๊ฐ ์ ๋ฌ๋์ง ์์ผ๋ฉด:onclick
์์ฑ์์ ์ง์ ์ ๋ฌํ๋์ง ํ์ธํ๊ฑฐ๋, ์ด๋ฒคํธ ๋ฆฌ์ค๋ ๋ฐฉ์์ผ๋ก ๊ตฌํํฉ๋๋ค.event.preventDefault()
๊ฐ ์๋ํ์ง ์์ผ๋ฉด: ์ด๋ฒคํธ๊ฐ ์ ๋๋ก ๋ฐ์ธ๋ฉ๋์๋์ง ํ์ธํ๊ณ , ๋ฆฌ์ค๋๋ฅผ ์ฌ์ฉํด ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํด๋ณด์ธ์.
div ์์ญ์ ์๋ class๋ช ์ด pic_box_po_01, pic_box_po_02, pic_box_po_03 ...์ด๋ฐ์์ผ๋ก 10๊น์ง ์๋ค $(".pic)_boc_po").on("click:) ์ด๋ฐ์์ผ๋ก ํ๋ฉด ๋ชจ๋ ์ ๋ค์ด ์ ์ฉ๋๋
$(".pic_box_po")๋ก๋ ํด๋น ์์๋ค์ ์ ํํ ์ ์์ต๋๋ค. jQuery์ ํด๋์ค ์ ํ์๋ ํด๋์ค ์ด๋ฆ์ด ์์ ํ ์ผ์นํด์ผ ํ๋ฏ๋ก, pic_box_po_01, pic_box_po_02์ฒ๋ผ ๋ฒํธ๊ฐ ๋ถ์ ํด๋์ค๋ค์ ์ ํํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ ๋์ฌ๋ก ์ผ์นํ๋ ํด๋์ค ์ด๋ฆ์ ์ ํํ ์ ์๋ jQuery์ ์์ฑ ์ ํ์๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ ์ ๋์ฌ๊ฐ ๋์ผํ ํด๋์ค ์ด๋ฆ์ ์ ํํ๋ ค๋ฉด, ์๋์ ๊ฐ์ด ^= (์์ ๋ฌธ์ ์ผ์น) ์ ํ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ ๋์ฌ๊ฐ ๋์ผํ ํด๋์ค ์ด๋ฆ์ ์ ํํ๋ ค๋ฉด, ์๋์ ๊ฐ์ด ^=
(์์ ๋ฌธ์ ์ผ์น) ์ ํ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
$("[class^='pic_box_po']").on("click", function() {
// ํด๋ฆญ ์ ์คํํ ์ฝ๋
});
^=
๋ "์ ๋์ฌ๋ก ์์"์ ์๋ฏธํ๋ ์ ํ์์ ๋๋ค."[class^='pic_box_po']"
๋ ํด๋์ค ์ด๋ฆ์ดpic_box_po
๋ก ์์ํ๋ ๋ชจ๋ ์์๋ฅผ ์ ํํฉ๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด pic_box_po_01
, pic_box_po_02
๋ฑ pic_box_po_
๋ก ์์ํ๋ ๋ชจ๋ ์์์ ํด๋ฆญ ์ด๋ฒคํธ๊ฐ ์ ์ฉ๋ฉ๋๋ค.
์ฝ๋์์ missionCt == 2
์ด์์ผ ๋ ์ด๋ฏธ์ง step02_off.png
๊ฐ step02_on.png
๋ก ๋ณ๊ฒฝ๋์ง ์๋ ์ด์ ๋ imgElement
์ src
๊ฐ ์ด๋ฏธ step01_on.png
๋ก ๋ณ๊ฒฝ๋์๊ธฐ ๋๋ฌธ์
๋๋ค. imgElement
๋ .event_status img
๋ก ์ ํ๋ ๋จ์ผ ์ด๋ฏธ์ง ์์์ด๊ธฐ ๋๋ฌธ์, ์ด ์ฝ๋๋ก๋ ์ฌ๋ฌ ์ด๋ฏธ์ง๋ฅผ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
var missionCt = 0;
const imgElement = document.querySelector('.event_status img');
if (missionCt == 3) {
if (imgElement.src.includes('step01_off.png')) {
imgElement.src = imgElement.src.replace('step01_off.png', 'step01_on.png');}
if (imgElement.src.includes('step02_off.png')) {
imgElement.src = imgElement.src.replace('step02_off.png', 'step02_on.png');}
if (imgElement.src.includes('step03_off.png')) {
imgElement.src = imgElement.src.replace('step03_off.png', 'step03_on.png');}
} }
imgElement
๋ ๋จ์ผ ์ด๋ฏธ์ง ์์๋ฅผ ์ฐธ์กฐ:imgElement
๋.event_status img
์ ๋ ํฐ๋ก ์ ํ๋ ์ฒซ ๋ฒ์งธimg
์์๋ง ์ฐธ์กฐํฉ๋๋ค. ๋ฐ๋ผ์step02_off.png
,step03_off.png
๋ฑ์ ์ด๋ฏธ์ง๋ฅผ ๋ณ๊ฒฝํ๋ ค ํด๋ ๋ค๋ฅธ ์ด๋ฏธ์ง๋ฅผ ์ฐธ์กฐํ์ง ๋ชปํฉ๋๋ค.
- ํ ๊ฐ์ ์ด๋ฏธ์ง์์ ์กฐ๊ฑด๋ฌธ์ ์ฒ๋ฆฌ:
if (imgElement.src.includes('step01_off.png')) { ... }
๋ก ์ฒซ ๋ฒ์งธ ์ด๋ฏธ์ง๋ฅผ ๋ณ๊ฒฝํ ์ดํ, ๊ฐ์imgElement
์์step02_off.png
๋ฅผ ์ฐพ์ผ๋ ค ํ์ง๋ง ํด๋น ์ด๋ฏธ์ง ๊ฒฝ๋ก๊ฐ ์กด์ฌํ์ง ์์ผ๋ฏ๋ก ์กฐ๊ฑด์ด ์คํจํฉ๋๋ค.
- ์ฌ๋ฌ ์ด๋ฏธ์ง๋ฅผ ์ ํ ๋ฐ ์ฒ๋ฆฌํ์ง ์์:
document.querySelector
๋ ์ฒซ ๋ฒ์งธimg
์์๋ง ์ ํํ๊ธฐ ๋๋ฌธ์ ๋ค์์ ์ด๋ฏธ์ง๋ฅผ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
์์ ๋ ์ฝ๋
const imgElements = document.querySelectorAll('.event_status img'); // ๋ชจ๋ img ํ๊ทธ ์ ํ
if (data.evegeYn == 'Y') {
missionCt = missionCt + 1;
if (data.stdourseCt > 0) {
missionCt = missionCt + 1;
}
if (data.stdyount >= 4) {
missionCt = missionCt + 1;
}
if (data.lmsnt > 0) {
missionCt = missionCt + 1;
}
// ๋ฏธ์
์์ ๋ฐ๋ผ ์ด๋ฏธ์ง ์ํ ๋ณ๊ฒฝ
imgElements.forEach((imgElement, index) => {
const stepIndex = index + 1; // step01, step02, etc.
if (missionCt >= stepIndex) {
imgElement.src = imgElement.src.replace(`step0${stepIndex}_off.png`, `step0${stepIndex}_on.png`);
}
});
}
document.querySelectorAll
์ฌ์ฉ:querySelectorAll
๋ก.event_status
ํด๋์ค ๋ด๋ถ์ ๋ชจ๋img
์์๋ฅผ ์ ํํฉ๋๋ค.- ๋ฐํ๋
NodeList
๋ ๊ฐ ์ด๋ฏธ์ง ์์๋ฅผ ์ํํ๋ฉฐ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
forEach
๋ก ์ด๋ฏธ์ง ๋ฐ๋ณต ์ฒ๋ฆฌ:- ๊ฐ ์ด๋ฏธ์ง์ ์์๋ฅผ
index
๋ก ์ฐธ์กฐํ์ฌstep01
,step02
, ...์ ๋งค์นญํฉ๋๋ค. missionCount
๊ฐ ํด๋นstepIndex
๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์ผ๋ฉด ์ด๋ฏธ์ง๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค.
- ๊ฐ ์ด๋ฏธ์ง์ ์์๋ฅผ
- ๋์ ํ์ผ๋ช
์์ฑ:
step0${stepIndex}_off.png
์step0${stepIndex}_on.png
๋ก ํ์ผ๋ช ์ ๋์ ์ผ๋ก ์์ฑํ์ฌ ์ฝ๋์ ์ค๋ณต์ ์ค์์ต๋๋ค
ChatGPT์ ๋ง:
ChatGPT
imgElements.length >= 2
๋ ์์ ํ ์ฝ๋ ์คํ์ ๋ณด์ฅํ๊ธฐ ์ํด ์ถ๊ฐ๋ ์กฐ๊ฑด์
๋๋ค. ์ด ์กฐ๊ฑด์ ์ด๋ฏธ์ง ๋ฐฐ์ด(imgElements
)์ ์ถฉ๋ถํ ๊ฐ์์ ์ด๋ฏธ์ง๊ฐ ์๋์ง ํ์ธํ๋ ์ญํ ์ ํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ฐฐ์ด ์ธ๋ฑ์ค ์ด๊ณผ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ๊ณ , ์ฝ๋ ์คํ ์ค ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง ์๋๋ก ํฉ๋๋ค.
1. imgElements
์ ์ถฉ๋ถํ ์ด๋ฏธ์ง๊ฐ ์์ ๊ฒฝ์ฐ
๋ง์ฝ imgElements
๋ฐฐ์ด์ ์ด๋ฏธ์ง๊ฐ 1๊ฐ๋ฐ์ ์๋๋ฐ imgElements[1]
๋ฅผ ์ ๊ทผํ๋ ค๊ณ ํ๋ค๋ฉด, JavaScript์์๋ undefined
๋ฅผ ๋ฐํํฉ๋๋ค. ์ด๋ฐ ์ํ์์ undefined.src
์ ์ ๊ทผํ๋ ค๊ณ ํ๋ฉด ๋ฐํ์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
์๋ฅผ ๋ค์ด:
const imgElements = document.querySelectorAll('.event_status img'); // img๊ฐ 1๊ฐ๋ฟ์ผ ๋
console.log(imgElements[1].src); // TypeError: Cannot read properties of undefined (reading 'src')
2. ์กฐ๊ฑด๋ฌธ์ด ์คํจํด์ผ ํ๋ ๊ฒฝ์ฐ
๋ง์ฝ ํน์ ์กฐ๊ฑด(data.stdyCourseCount > 0
)์ ๋ง์กฑํ๋๋ผ๋ ๋์ ์ด๋ฏธ์ง๊ฐ ์์ผ๋ฉด ์๋ฌด๊ฒ๋ ์คํํ์ง ์๋ ๊ฒ์ด ์์ ํฉ๋๋ค.
๋ค์ ์ฝ๋๋ฅผ ๋ณด์ธ์:
if (data > 0) {
imgElements[1].src = imgElements[1].src.replace('step02_off.png', 'step02_on.png');
}
๋ง์ฝ imgElements
์ ์ด๋ฏธ์ง๊ฐ 1๊ฐ๋ฐ์ ์๋ค๋ฉด:
imgElements[1]
๋undefined
๋ฅผ ๋ฐํํฉ๋๋ค.- ๊ฒฐ๊ณผ์ ์ผ๋ก ๋ฐํ์ ์ค๋ฅ(
TypeError
)๊ฐ ๋ฐ์ํฉ๋๋ค.
if (data> 0 && imgElements.length >= 2) {
imgElements[1].src = imgElements[1].src.replace('step02_off.png', 'step02_on.png');
}
์ฌ๊ธฐ์ imgElements.length >= 2
๋ ๋ค์์ ์๋ฏธํฉ๋๋ค:
- ์ด๋ฏธ์ง๊ฐ ์ต์ 2๊ฐ ์์ด์ผ ํด๋น ์ฝ๋๊ฐ ์คํ๋ฉ๋๋ค.
- ๋ฐฐ์ด์ ๋ ๋ฒ์งธ ์ด๋ฏธ์ง(
imgElements[1]
)๊ฐ ์กด์ฌํ์ง ์๋ ๊ฒฝ์ฐ ์คํ์ ๋ฐฉ์งํฉ๋๋ค.
์กฐ๊ฑด ์์ด ์ฝ๋๋ฅผ ์์ฑํ๋ฉด:
- ์ด๋ฏธ์ง๊ฐ ์ถฉ๋ถํ์ง ์์ ๊ฒฝ์ฐ, ๋ฐํ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
- ์:
imgElements[3]
๋ฅผ ์ ๊ทผํ๋ ค ํ์ง๋ง ์ค์ ๋ก๋ ๋ฐฐ์ด ๊ธธ์ด๊ฐ 3๋ณด๋ค ์์ ๋.
๋ฐฐ์ด์ ๊ธธ์ด๋ฅผ ์กฐ๊ฑด๋ณ๋ก ํ์ธํ๋ ์ด์ ๋ ๋ฐฐ์ด ๋ด์ ์ธ๋ฑ์ค๋ฅผ ์ ๊ทผํ ๋ ํญ์ ์์ ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด์์ ๋๋ค. ๊ฐ ์กฐ๊ฑด์ด ๋ ๋ฆฝ์ ์ผ๋ก ์๋ํ๋ฏ๋ก, ํ์ํ์ง ์์ ์กฐ๊ฑด๊น์ง ๊ฒ์ฆํ ํ์๊ฐ ์์ต๋๋ค.
imgElements.length >= 2
๋ฅผ ์ฌ์ฉํ ์ด์ ๋:
- ๋ฐฐ์ด ์ธ๋ฑ์ค ์ด๊ณผ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํจ.
- ์ด๋ฏธ์ง๊ฐ ๋ถ์กฑํ ์ํฉ์์๋ ์ฝ๋๊ฐ ์์ ํ๊ฒ ์๋ํ๋๋ก ๋ณด์ฅ.
- ๊ฐ ์กฐ๊ฑด์ ํ์ํ ์ด๋ฏธ์ง ๊ฐ์์ ๋ฐ๋ผ ์ ์ฐํ๊ฒ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ถ๊ฐ๋ ์กฐ๊ฑด์ ๋๋ค.
๋ฐ๋ผ์ ์ด๋ฐ ์กฐ๊ฑด์ ์ด๋ฏธ์ง๊ฐ ๋์ ์ผ๋ก ๋ก๋๋๊ฑฐ๋ ๊ฐ์๊ฐ ๋ถํ์คํ ๊ฒฝ์ฐ ๋ฐ๋์ ํ์ํฉ๋๋ค! ๐
console.log('API Data:', data); // API ๋ฐ์ดํฐ ํ์ธ
const imgElements = document.querySelectorAll('.event_status img'); // ๋ชจ๋ img ํ๊ทธ ์ ํ
console.log('Selected Images:', imgElements); // ์ ํ๋ ์ด๋ฏธ์ง ์ถ๋ ฅ
// ํ์ ์กฐ๊ฑด ์ฒดํฌ
if (data.en == 'Y' && imgElements.length >= 1) {
console.log('Condition met: data.en == Y'); // ์กฐ๊ฑด ๋๋ฒ๊น
// ์กฐ๊ฑด ๋ฐฐ์ด ์ ์
const conditions = [
{ condition: true, index: 0, replace: 'step01_off.png', with: 'step01_on.png' }, // ํ์ ์กฐ๊ฑด
{ condition: data.stdyCour > 0, index: 1, replace: 'step02_off.png', with: 'step02_on.png' },
{ condition: data.stdyLec >= 4, index: 2, replace: 'step03_off.png', with: 'step03_on.png' },
{ condition: data.lmsPt > 0, index: 3, replace: 'step04_off.png', with: 'step04_on.png' }
];
// ๋ฐ๋ณต๋ฌธ์ผ๋ก ์ฒ๋ฆฌ
conditions.forEach(({ condition, index, replace, with: replaceWith }) => {
if (condition && imgElements.length > index) {
imgElements[index].src = imgElements[index].src.replace(replace, replaceWith);
console.log(`Updated Image ${index + 1}: ${imgElements[index].src}`);
}
});
} else {
console.log('Condition not met: data.eventAgreeYn != Y or no images found');
}
}
- ์กฐ๊ฑด ๋ฐฐ์ด๋ก ํตํฉ:
- ๊ฐ ์กฐ๊ฑด(
data.stdyCourseCount
,data.stdyLectCount
,data.lmsPstCount
)์ ๊ฐ์ฒด ๋ฐฐ์ด๋ก ์ ์ํฉ๋๋ค. condition
: ์คํ ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ ์กฐ๊ฑด.index
: ํด๋น ์ด๋ฏธ์ง์ ์ธ๋ฑ์ค.replace
๋ฐwith
:src
๋ฅผ ๋ณ๊ฒฝํ ํ์ผ๋ช ์ ์.
- ๊ฐ ์กฐ๊ฑด(
- ๋ฐ๋ณต๋ฌธ์ผ๋ก ์ฒ๋ฆฌ:
forEach
๋ฅผ ์ฌ์ฉํด ๋ฐฐ์ด์ ์ํํ๋ฉฐ ๊ฐ ์กฐ๊ฑด์ ํ๊ฐํ๊ณ , ์กฐ๊ฑด์ด ์ถฉ์กฑ๋๋ฉด ์ด๋ฏธ์ง๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค.imgElements.length > index
๋ฅผ ํตํด ๋ฐฐ์ด ๋ฒ์ ์ด๊ณผ๋ฅผ ๋ฐฉ์งํฉ๋๋ค.
- ํ์ ์กฐ๊ฑด ๋ณ๋ ์ฒ๋ฆฌ:
- ์ฒซ ๋ฒ์งธ ์กฐ๊ฑด(
data.eventAgreeYn == 'Y'
)์ ํญ์ ์คํ๋๋๋ก ๋ฐฐ์ด์condition: true
๋ก ๋ช ์ํฉ๋๋ค.
- ์ฒซ ๋ฒ์งธ ์กฐ๊ฑด(
- ๋ก๊ทธ ํตํฉ:
- ์ด๋ฏธ์ง ์ ๋ฐ์ดํธ ์ฌ๋ถ๋ฅผ ์ถ๋ ฅํด ๋๋ฒ๊น ์ ์ฉ์ดํ๊ฒ ํ์ต๋๋ค.
- ์ค๋ณต ์ฝ๋ ์ ๊ฑฐ:
- ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํด ์ค๋ณต๋ ์ฝ๋๋ฅผ ์ ๊ฑฐํ๊ณ ์ ์ง๋ณด์๋ฅผ ์ฉ์ดํ๊ฒ ํ์ต๋๋ค.
- ํ์ฅ์ฑ ํฅ์:
- ์กฐ๊ฑด์ด๋ ์ด๋ฏธ์ง๊ฐ ์ถ๊ฐ๋ ๊ฒฝ์ฐ ๊ฐ์ฒด ๋ฐฐ์ด์ ์๋ก์ด ํญ๋ชฉ์ ์ถ๊ฐํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
- ๊ฐ๋
์ฑ ๊ฐ์ :
- ์กฐ๊ฑด๋ณ ๋ก์ง์ด ๋ฐฐ์ด๋ก ์ ๋ฆฌ๋์ด ๊ฐ๋ ์ฑ์ด ํฅ์๋์์ต๋๋ค.
์ด ์ฝ๋๋ ์๋ ์ฝ๋์ ๋์ผํ ๋์์ ์ํํ๋ฉด์ ๊ฐ๊ฒฐํ๊ณ ํ์ฅ ๊ฐ๋ฅํ๋๋ก ์์ฑ๋์์ต๋๋ค. ํ ์คํธ๋ฅผ ํตํด ์กฐ๊ฑด๋ณ๋ก ์ฌ๋ฐ๋ฅธ ์ด๋ฏธ์ง๊ฐ ์ ๋ฐ์ดํธ๋๋์ง ํ์ธํ์ธ์. ์ถ๊ฐ์ ์ผ๋ก ์๋ก์ด ์กฐ๊ฑด์ ์ถ๊ฐํด์ผ ํ๋ค๋ฉด ๋ฐฐ์ด์ ํญ๋ชฉ์ ์ถ๊ฐํ๋ฉด ๋ฉ๋๋ค. ๐