์์ ๊ฐ์ด ํํ์ด์ง ์ํ ๋ชฉ๋ก์ ์์ฑํ๋ค๊ณ ๊ฐ์ ํด๋ณด๊ฒ ์ต๋๋ค.
HTML
์ ์์๋ค์ ์ง์ ์์ฑํด์ ํ๋์ฝ๋ฉํ ์๋ ์๊ฒ ์ง๋ง, ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง๋ค HTML
์์๋ฅผ ๊ณ์ํด์ ์ง์ ์์ ํด์ค์ผํ๋ ๋ฒ๊ฑฐ๋ก์์ด ์๊น๋๋ค.
๋ฐ๋ฉด, ๋ฐฐ์ด๊ณผ JavaScript
๋ฅผ ์ด์ฉํ๋ฉด ๋ฐ์ดํฐ๊ฐ ๋ณํ ๋๋ง๋ค ๋ณ๊ฒฝ์ฌํญ์ ์๋์ผ๋ก ๋ฐ์ํ ์ ์์ต๋๋ค.
JavaScript
๋ฅผ ์ด์ฉํ๋ฉด DOM
๊ฐ์ฒด์ ์ ๊ทผํ์ฌ HTML ์์๋ฅผ ์ง์ ์์ฑ, ์์ , ์ญ์ ํ ์ ์์ต๋๋ค.
์๋์ ๋น์ด์๋ HTML
์์์ธ div
ํด๋์ค row
์ ์ํ ๋ฆฌ์คํธ๋ฅผ ์ถ๊ฐํด๋ณด๊ฒ ์ต๋๋ค.
<div class="container">
<div class="row"></div>
</div>
์ํ ๋ฆฌ์คํธ๊ฐ ๋ฐฐ์ด์์ ๊ฐ์ฒด ํ์์ผ๋ก ๋ด๊ฒจ์์ต๋๋ค.
let products = [
{id: 0, price: 70000, title: "๊ฝ๋ฌด๋ฌ ์ํผ์ค"},
{id: 1, price: 50000, title: "๋ฐ๋ ์
์ธ "},
{id: 2, price: 60000, title: "ํธ๋ฌ์ปค ์ฌํท"},
];
append ์ฌ์ฉ
products.forEach((a, i) => {
const temp = document.createElement("div");
temp.innerHTML = `<div class="col-sm-4">
<img src="https://via.placeholder.com/600" class="w-100">
<h5>${products[i].title}</h5>
<p>๊ฐ๊ฒฉ : ${products[i].price}</p>
</div>`;
document.querySelector(".row").append(temp);
});
- 1๋ฒ์งธ ์ค์์, ๋ฐฐ์ด์ ๋ด๊ฒจ์๋ ์์๋ค์
forEach
๋ฉ์๋๋ฅผ ํตํด ๋ฐฐ์ด์ ๋ด๊ธด ์ํ ๋ฆฌ์คํธ์ ์ซ์๋งํผ ๋์๋ฉ๋๋ค. ์ฆ ๋ฐฐ์ด์ ๋ด๊ธด ์ํ ๊ฐ์๋งํผ ์์๋ค์ด ์์ฑ๋ฉ๋๋ค. 3๊ฐ์ ๊ฐ์ฒด๊ฐ ๋ฐฐ์ด ์์ ์์ผ๋, 3๋ฒ ๋์๋ฉ๋๋ค. - 2๋ฒ์งธ ์ค์์,
createElement
๋ฅผ ์ฌ์ฉํ์ฌdiv
์์๋ฅผ ์์ฑํ๋คtemp
๋ณ์์ ๋ด์์ค๋๋ค. - 3๋ฒ์งธ ์ค์์, ๋ณ์์
innerHTML
์ ์ฌ์ฉํ์ฌHTML
์์๋ค์ ์ง์ ๋ด์์ค๋๋ค. ๋ฐฑํฑ(``)์ ์ฌ์ฉํด์ ๋ฌถ๊ฒ ๋๋ฉด ์ฑ๊ธ ์ฟผํ ์ด์ (''), ๋๋ธ ์ฟผํ ์ด์ ("")๊ณผ ๊ธฐ๋ฅ์ ๊ฐ์ง๋ง, ๋๊ณผ๋ ๋ฌ๋ฆฌ ์ค ๋ฐ๊ฟ์ด ๊ฐ๋ฅํ๋ฉฐ ${ }๋ฅผ ์ฌ์ฉํด ๊ฐ์ฒด๋ฅผ ๋ด์ ์ ์์ต๋๋ค. - 8๋ฒ์งธ ์ค์์, ๋น์ด์๋
HTML
์์์ธrow
ํด๋์ค์ ์์๋ ธ๋๋กtemp
๊ฐ์ฒด๋ฅผ ์ฝ์ ํฉ๋๋ค. - products ๋ฐฐ์ด์ ์๋ ๋ฐ์ดํฐ๋ค์ด ํ๋ฉด์ ๋ ๋๋ง ๋ฉ๋๋ค.
insertAdjacentHTML ์ฌ์ฉ
products.forEach((a, i) => {
const temp = document.querySelector(".row").insertAdjacentHTML(
"afterbegin", // HTML ์์๊ฐ ์ฝ์
๋๋ ์์น ์ ์ธ
`<div class="col-sm-4">
<img src="https://via.placeholder.com/600" class="w-100">
<h5>${a.title}</h5>
<p>๊ฐ๊ฒฉ : ${a.price}</p>
</div>`
);
});
์ ์ด์ฟผ๋ฆฌ ์ฌ์ฉ
products.forEach((a, i) => {
let temp =
`<div class="col-sm-4">
<img src="https://via.placeholder.com/600" class="w-100">
<h5>${products[i].title}</h5>
<p>๊ฐ๊ฒฉ : ${products[i].price}</p>
</div>`;
$('.row').append(temp)
});
forEach
๋ฉ์๋์ ๋ํ ์์ธํ ์ค๋ช
์ mdn ๋งํฌ๋ฅผ ์ฐธ์กฐํ๊ฒ ์ต๋๋ค.
'๐ฅ Front-End > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] JavaScript ๊ฐ์ฒด์ ๋ถ๋ณ์ฑ (0) | 2022.07.20 |
---|---|
[JS] JavaScript์ ์๋ฃํ๊ณผ JavaScript๋ง์ ํน์ฑ (0) | 2022.07.19 |
[JS] 10. setTimeout & setInterval & requestAnimationFrame (0) | 2022.04.20 |
[JS] 8. IIFE & ๋ชจ๋ & ๋ค์์คํ์ด์ค (0) | 2022.04.18 |
[JS] 7. ํํ์ & ๋ฌธ (0) | 2022.04.17 |