반응형
JavaScript에서 data 속성은 주로 HTML 요소에 사용자 정의 데이터를 저장할 때 사용하는 HTML5의 커스텀 데이터 속성을 의미합니다. 이 속성들은 data-로 시작하며, JavaScript를 통해 쉽게 접근하고 조작할 수 있습니다.
HTML5 커스텀 데이터 속성이란?
- 정의: HTML 요소에 추가 정보를 저장할 수 있는 속성입니다.
- 형식: data-키이름="값" 형식으로 사용합니다.
- 사용 목적: 별도의 시각적 표현이 필요 없는, 추가적인 정보를 요소에 담고 싶을 때 사용합니다.
JavaScript에서의 접근 방법
HTML 요소에 설정된 커스텀 데이터 속성은 JavaScript의 dataset 프로퍼티를 통해 접근할 수 있습니다.
- data- 뒤의 이름은 카멜 표기법으로 변환되어 접근합니다.
예) data-user-id → element.dataset.userId
예제
다음은 HTML 요소에 커스텀 데이터 속성을 설정하고, JavaScript에서 읽고 수정하는 예제입니다.
<!-- HTML -->
<div id="userInfo" data-user-id="101" data-user-name="JohnDoe">
사용자 정보
</div>
// JavaScript
const userInfo = document.getElementById('userInfo');
// data 속성 읽기
console.log(userInfo.dataset.userId); // 출력: "101"
console.log(userInfo.dataset.userName); // 출력: "JohnDoe"
// data 속성 변경
userInfo.dataset.userName = 'JaneDoe';
console.log(userInfo.dataset.userName); // 출력: "JaneDoe"
요약
- HTML: <div id="userInfo" data-user-id="101" data-user-name="JohnDoe"></div>
- JavaScript: document.getElementById('userInfo').dataset를 통해 data-user-id는 userId, data-user-name은 userName으로 접근
이처럼 HTML5의 data 속성을 활용하면, 요소에 추가적인 정보를 쉽게 저장하고 JavaScript에서 이를 읽어 동적으로 활용할 수 있습니다.
여기서 조금더 알아봅시다.
id 속성 없이도, CSS 선택자를 이용하여 data-user-id="101" 속성을 가진 요소를 선택할 수 있습니다.
이를 위해 JavaScript의 document.querySelector나 document.querySelectorAll 메서드를 사용할 수 있습니다.
그리고 추가로 해당 데이터의 값을 변경하는 법을 알아보도록 하겠습니다.
예제를 통해 알아보겠습니다.
HTML 코드 예제
<div data-user-id="101" data-user-name="JohnDoe">
사용자 정보
</div>
JavaScript 코드 예제
// data-user-id가 "101"인 요소 선택 (첫 번째 요소만 선택)
const element = document.querySelector('[data-user-id="101"]');
if (element) {
// 기존 값 확인
console.log(element.dataset.userId); // 출력: "101"
// data-user-id 값을 수정하는 방법 1: dataset 프로퍼티 사용
element.dataset.userId = '202';
console.log(element.dataset.userId); // 출력: "202"
// data-user-id 값을 수정하는 방법 2: setAttribute 메서드 사용
element.setAttribute('data-user-id', '303');
console.log(element.getAttribute('data-user-id')); // 출력: "303"
}
설명
- 요소 선택하기:
- document.querySelector('[data-user-id="101"]')를 사용하여 data-user-id 속성의 값이 "101"인 요소를 선택합니다.
- 여러 요소를 선택하려면 document.querySelectorAll('[data-user-id="101"]')를 사용하여 NodeList를 받을 수 있습니다.
- 값 수정하기:
- 방법 1: dataset 프로퍼티를 사용하여 element.dataset.userId로 접근한 후 원하는 값으로 변경합니다.주의: data-user-id 속성은 dataset에서는 userId로 접근합니다.
- 방법 2: setAttribute 메서드를 사용하여 data-user-id 속성을 직접 수정할 수 있습니다.
이처럼, id 없이도 data 속성을 가진 요소를 쉽게 선택하고, 값을 읽거나 수정할 수 있습니다.
반응형
'프로그래밍 월드 > Javascript & jQuery' 카테고리의 다른 글
[Javascript] 자바스크립트의 filter에 대하여 알아보자. (0) | 2025.03.14 |
---|---|
[Javascript] 자바스크립트의 this에 대하여 전반적인 상황을 알아봅시다. (1) | 2025.02.06 |
JWT(JSON Web Token)란? 서버사이드 aspx일 경우의 예제입니다. (0) | 2025.02.05 |
javascript의 class에 대하여 대략전인 시스템을 알아봅니다. (1) | 2025.01.28 |
javascript의 export import에 대하여 알아봅시다. (1) | 2025.01.27 |