cy.get('[data-value="3"]')
, cy.get('[data-value="3"] [data-value="hungry"]')
처럼 class이름 없이 한 방에 가져다 쓸 수 있어 편해졌다.data-
로 시작하는 HTML의 변수와 같은 속성data-value
, data-amugeona
등 뒤에 오는 이름은 마음대로 지정 가능하다.<!-- 객체 형태로 된 문자열 데이터셋 -->
<div data-person='{"name": "Chris Coyier", "job": "Web Person"}'></div>
<!-- 배열 형태로 된 문자열 데이터셋 -->
<div data-fruit='["apple", "banana", "melon"]'></div>
<div id="post" data-columns="3" data-title="javascript" data-index-number="123">
...
</div >
const $div = document.getElementById('post');
// 일반적인 객체 속성 접근
$div.dataset.columns // "3"
// 배열 인덱스로 접근
$div.dataset['title'] // "javascript"
// data-index-number에서 dataset.indexNumber로 변환
$div.dataset.indexNumber // "12314"
const $div = document.getElementById('post');
$div.getAttribute('data-columns') // "3"
$div.getAttribute('data-title') // "javascript"
$div.getAttribute('data-index-number') // "12314"
$div.dataset.변수 = 값
해주면 된다.$div.setAttribute('data-comments', '10')
이런 식으로도 가능하다.const $div = document.getElementById('post');
delete $div.dataset.title; // delete 키워드로 객체 속성 삭제
$div.removeAttribute('data-comments');
$div.dateset
으로 모든 data- 속성 확인이 가능하다.