[JS] 데이터 속성 (data-xxx)

2022. 1. 10. 20:01Javascript/개념

1. 데이터 속성

HTML5부터는 데이터 속성이라는 개념이 생겼다.

데이터 속성은 HTML 요소의 'data-'로 시작하는 속성이다.

이러한 데이터 속성은 특정한 데이터를 DOM 요소에 저장해두기 위한 목적.

데이터 속성은 'data-' 로 시작해야 하며, 브라우저는 이러한 데이터 속성에는 어떠한 행동도 관여하지 않기

때문에 개발자는 요소에 특정한 데이터를 저장하고 싶은 경우 자유롭게 사용할 수 있다.

 

ex ) input 태그에는 data-value 라는 데이터 속성을 내가 만들었다.

       속성명은 data-value이지만 HTML 표준 속성인 value 속성과는 상관이 없다. 내가 임의로 만든 속성이므로!

<input type="text" data-value="001" id="username">

 

 

2. 장점

  • 이전과 같이 hidden으로 태그를 숨겨두고 데이터를 저장할 필요가 없다.
  • 따라서 HTML 코드가 간결해짐.
  • 하나의 HTML 요소에 여러 데이터 속성을 동시에 사용할 수 있다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>데이터 속성</title>

</head>
<body>
    <input type="text" data-value="001" data-code="a03" id="username">

<script>
    const input = document.querySelector('#username');
    console.log(input.dataset)
</script>
</body>
</html>

DOMStringMap으로 데이터 속성들을 가지고 있음. 속성 key 값을 보면 'data-' 가 빠진 채로 존재함!

 

3. 특정 속성값만 추출하기

const input = document.querySelector('#username');
console.log(input.dataset);
console.log(input.dataset.value);
console.log(input.dataset.code);
console.log(input.dataset['code']);

 

 

4. 데이터 속성 값 바꾸기

값을 추출하는것과 마찬가지로 dataset 속성을 이용

const input = document.querySelector('#username');
input.dataset.value="002"
console.log(input.dataset.value); // 002

 

 

 

 

 

'Javascript > 개념' 카테고리의 다른 글

[JS] Math  (0) 2022.01.24
[JS] 객체 메소드  (0) 2022.01.24
[JS] 동작원리 (Stack, Queue, event loop)  (0) 2022.01.04
[JS] fill  (0) 2022.01.03
[JS] event.preventDefault()  (0) 2021.12.16