DOM ์์์ ์คํ์ผ ๋ณ๊ฒฝ
1) className
<form>
<div class="control">
<label for="product-name">Product Name</label>
<input type="text" id="product-name" name="product-name" maxlength="60">
<span id="charcount">
<span id="remaining-chars">60</span>/60
</span>
</div>
<button>Submit</button>
</form>
input.warning {
background-color: rgb(248, 191, 145);
}
#remaining-chars.warning {
color:rgb(211, 109, 26);
}
const spanElement = document.getElementById('remaining-chars');
spanElement.className = 'warning';
element.className('some-class')๋ก ํด๋น ์์์ ํด๋์ค๋ช ์ ์ถ๊ฐํ ์ ์๋ค.
- className์ผ๋ก css ํด๋์ค ์ถ๊ฐํ ๋์ ๋จ์ : ์ด๋ฏธ ํด๋์ค๋ฅผ ๊ฐ์ง๊ณ ์๋ ์์์ ๊ฒฝ์ฐ, ํด๋น ํด๋์ค๊ฐ ์๋ก์ด ํด๋์ค๋ก ๋ฎ์ด์์ด์ง๋ค. ๊ธฐ์กด ํด๋์ค์ ์๋ก์ด ํด๋์ค๋ฅผ ๊ฐ์ด ์ฌ์ฉํ๋ ค๋ฉด someElement.className = ‘old-class new-class’์ฒ๋ผ ๊ธฐ์กด ํด๋์ค๋ช ์ ์ฐพ์ ํ๋์ฝ๋ฉ์ผ๋ก ์ถ๊ฐํด์ฃผ์ด์ผ ํ๋ค.
2) classList
classList ํ๋กํผํฐ๋ ๋ค์ํ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ ์๋๋ฐ, ์ด ๋ฉ์๋๋ค์ ํตํด ์๋ก์ด ํด๋์ค๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ๊ธฐ์กด ํด๋์ค๋ฅผ ์ญ์ ํ์ฌ className์ ๋ฐฉ๋ฒ๋ณด๋ค ๋ ์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์๋ค.
spanElement.classList.add('add-class') // ํด๋์ค๋ช
์ถ๊ฐ, ๊ธฐ์กด์ ํด๋์ค๊ฐ ์๋๋ผ๋ ๊ธฐ์กด ๊ฒ์ ๋ฎ์ด์ฐ์ง ์๊ณ ์๋กญ๊ฒ ์ถ๊ฐ๋จ
spanElement.classList // ์์์ ํด๋์ค๋ช
์ ํ์ธํ ์ ์๋ค.
spanElement.classList.remove('add-class') // ํด๋น ํด๋์ค ์ญ์ , ์ญ์ ํ ํด๋์ค๋ฅผ ์ ์ธํ ๋๋จธ์ง ํด๋์ค๋ ๊ทธ๋๋ก ๋จ์์๋ค.
์์ ๊ฒฐ๊ณผ๋ฌผ
๋ฉ์๋
- add('class-name') : ์ง์ ํ ํด๋์ค ๊ฐ์ ์ถ๊ฐํ๋ค. ๋ง์ฝ ์ถ๊ฐํ๋ ค๋ ํด๋์ค๊ฐ ์์์ class ์์ฑ์ ์ด๋ฏธ ์กด์ฌํ๋ค๋ฉด ๋ฌด์ํ๋ค.
- remove('class-name') : ์ง์ ํ ํด๋์ค ๊ฐ์ ์ ๊ฑฐํ๋ค. ์กด์ฌํ์ง ์๋ ํด๋์ค๋ฅผ ์ ๊ฑฐํ๋ ค๋ ๊ฒฝ์ฐ ์๋ฌ๋ฅผ ๋ฐ์์ํค์ง ์๋๋ค.
- item(index-number) : ์ปฌ๋ ์ ์ ์ธ๋ฑ์ค๋ฅผ ์ด์ฉํ์ฌ ํด๋์ค ๊ฐ์ ๋ฐํํ๋ค.
- toggle('first-class-name', 'second-class-name')
- ํ๋์ ์ธ์๋ง ์์ ๋๋ ํด๋์ค ๊ฐ์ ํ ํด๋งํ๋ค. ์ฆ, ํด๋์ค๊ฐ ์กด์ฌํ๋ค๋ฉด ์ ๊ฑฐํ๊ณ false๋ฅผ ๋ฐํํ๋ฉฐ, ์กด์ฌํ์ง ์์ผ๋ฉด ํด๋์ค๋ฅผ ์ถ๊ฐํ๊ณ true๋ฅผ ๋ฐํํ๋ค.
- ๋ ๋ฒ์งธ ์ธ์๊ฐ ์์ ๋ : ๋ ๋ฒ์งธ ์ธ์๊ฐ true๋ก ํ๊ฐ๋๋ฉด ์ง์ ํ ํด๋์ค ๊ฐ์ ์ถ๊ฐํ๊ณ false๋ก ํ๊ฐ๋๋ฉด ์ ๊ฑฐํ๋ค.
- contains('class-name')
- ์ง์ ํ ํด๋์ค ๊ฐ์ด ์์์ class ์์ฑ์ ์กด์ฌํ๋์ง ํ์ธํ๋ค.
- replace('old-class', 'new-class')
- ์กด์ฌํ๋ ํด๋์ค๋ฅผ ์๋ก์ด ํด๋์ค๋ก ๊ต์ฒดํ๋ค.
'๐ป Programming > JS, TS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript] ์ด๋ฒคํธ ๊ฐ์ฒด (0) | 2024.01.13 |
---|---|
[JavaScript] window&document ์ ์ญ๊ฐ์ฒด์ DOM (0) | 2024.01.11 |
[JavaScript] slice vs splice vs split ์ฐจ์ด์ (0) | 2023.08.08 |
[TypeScript] Map (0) | 2023.07.27 |
[JavaScript] ์๋ฐ์คํฌ๋ฆฝํธ๋ก ํฌ๋ฆฌ์ค๋ง์ค๊น์ง ๋จ์ ์๊ฐ ๊ณ์ฐํ๊ธฐ (0) | 2023.06.21 |