๐ insertAdjacentHTML๋ก ์ฝ๊ฒ append ํ์
DOM์ ํ ์คํธ๋ก๋ html ์ฝ์ ํ๊ธฐ
๊ฐ๋ฐ์๋ค์ด ์ ์ด์ฟผ๋ฆฌ๋ฅผ ์ ์ฉํด์๋ ์ด์ ์ค ํ๋๊ฐ ๋ฐ๋ก ํ ์คํธ๋ก ๋ html๋ฌธ์์ด์ ๊ทธ๋๋ก ํจ์์ ๋ฃ์ผ๋ฉด ๋ฐ๋ก DOM์ ์ถ๊ฐ/์ฝ์ ์ด ๋๋ค๋ ์ ์ด์๋ค.
$('div').append('<p><span>์๋
ํ์ธ์</span></p>');
$('div').prepend('<p><span>์๋
ํ์ธ์</span></p>');
$('div').after('<p><span>์๋
ํ์ธ์</span></p>');
$('div').before('<p><span>์๋
ํ์ธ์</span></p>');
๋ฐ๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ์์๋ append, after ํจ์๊ฐ ์์ง๋ง, ๋งค๊ฐ๋ณ์๋ก ๋ฌธ์์ด์ด ์๋ document.createElement("div") ํตํด ๋ง๋ node ๊ฐ์ฒด ๋ง์ ๋ฐ์์ ์์ด, ์ฝ๋๊ฐ ๊ธธ์ด์ง๊ณ ๊ฐ๋
์ฑ์ด ์์ข์ ๋ณ๋ก ์ฌ์ฉ์ฑ์ด ์ข์ง ์์๋ค.
๋ฌผ๋ก innerHTML ํ๋กํผํฐ๋ก htmlํ์์ ๋ฌธ์์ด์ ๋ฃ์์๋ ์์ง๋ง ์ด๋ ์์น์ ๋ฃ์์ง์ ๋ํ ์์น๊ฐ์ ์ง์ํ์ง ์๋๋ค๋ ๋จ์ ์ด ์์๋ค. ๊ทธ๋ฅ ๊ธฐ์กด์ ์์๋ฅผ ๋ฎ์ด์์ ๋ฒ๋ฆฌ๊ธฐ ๋๋ฌธ์ด๋ค.
์ถ๊ฐ๋ก innerHTML์ DOM Tree๊ฐ ํต์งธ๋ก ๊ต์ฒด๋๊ธฐ ๋๋ฌธ์ ๋จ๋ฐํ๋ฉด ์ฑ๋ฅ์ ์ข์ง ๋ชปํ๋ค.
ํ์ง๋ง insertAdjacentHTML ์ด ๋ฑ์ฅํ๋ฉด์ ๊ฐํธํ๊ฒ htmlํ์์ ๋ฌธ์์ด์ ๋ฐ๋ก DOM์ ์ฝ์ ํ ์ ์๊ฒ๋์ด, ๋์ด์ ์ ์ด์ฟผ๋ฆฌ๋ฅผ ์ด์ฉํ ํ์๊ฐ ์์ผ๋ฉฐ ๋๊ตฐ๋ค๋ ์ ์ด์ฟผ๋ฆฌ, innerHTML๋ณด๋ค ํจ์ฌ ์ฑ๋ฅ์ด ๋ ์ข๋ค.
Element.insertAdjacentHTML ์ฌ์ฉ๋ฒ
- 'beforebegin' – <p> ์์ ๋ฐ๋ก ์์ html์ ์ฝ์
- 'afterbegin' – <p> ์์์ ์ฒซ ๋ฒ์งธ ์์ ์์ ๋ฐ๋ก ์์ html์ ์ฝ์
- 'beforeend' – <p> ์์์ ๋ง์ง๋ง ์์ ์์ ๋ฐ๋ก ๋ค์์ html์ ์ฝ์
- 'afterend' – <p> ์์ ๋ฐ๋ก ๋ค์์ html์ ์ฝ์
const $div = document.querySelector('div');
$div.insertAdjacentHTML('beforebegin', '<p><span>์๋
ํ์ธ์</span></p>')
$div.insertAdjacentHTML('afterbegin', '<p><span>์๋
ํ์ธ์</span></p>')
$div.insertAdjacentHTML('beforeend', '<p><span>์๋
ํ์ธ์</span></p>')
$div.insertAdjacentHTML('afterend', '<p><span>์๋
ํ์ธ์</span></p>')
์ฐธ๊ณ ๋ก insertAdjacentHTML ์ 'beforebegin' ๋ฐ 'afterend' ์ต์ ์ ๋ ธ๋๊ฐ DOM ํธ๋ฆฌ ๋ด์ ์กด์ฌํ๊ณ ๋ถ๋ชจ์์๋ฅผ ๊ฐ์ง ๊ฒฝ์ฐ์๋ง ๋์ํ๋ค.
๋จ, ์๋ฌด๋ฆฌ insertAdjacentHTML์ด๋ผ๋ ์ ํต์ createElement๋ก ๋ ธ๋๋ฅผ ๋ง๋ค์ด ์ถ๊ฐํ๋ ๊ฒ๋ณด๋ค๋ ์ฝ๊ฐ ๋๋ฆฌ๋ค.