the dataset spec에 따르면 element.dataset은 데이터 속성을 삭제하는 방법은 무엇입니까? 고려 :HTML5 데이터 세트를 사용하여 data- * 속성을 삭제하는 방법
<p id="example" data-a="string a" data-b="string b"></p>
을 이렇게 할 경우 :
var elem = document.querySelector('#example');
elem.dataset.a = null;
elem.dataset.b = undefined;
elem.dataset.c = false;
elem.dataset.d = 3;
elem.dataset.e = [1, 2, 3];
elem.dataset.f = {prop: 'value'};
elem.dataset.g = JSON.stringify({prop: 'value'});
는 DOM은 크롬과 파이어 폭스에서이된다 :
<p id="example"
data-a="null"
data-b="undefined"
data-c="false"
data-d="3"
data-e="1,2,3"
data.f="[object Object]"
data.g="{"prop":"value"}"
></p>
크롬/파이어 폭스 구현을 모방 setAttribute. 기본적으로 우선 .toString()
이 적용됩니다. 이것은 null
의 치료를 제외하고 나에게 의미가 있습니다. 왜냐하면 나는 null
이 속성을 제거 할 것으로 예상하기 때문입니다. 부울 속성에 대한
elem.removeAttribute('data-a');
그리고 무엇 : 그렇지 않으면 데이터 세트 API는 동등한 역할을합니까 방법
<p data-something>
은 흠 <p data-something="">
에 해당합니다.
'elem.dataset.foo' 작품을 삭제! – ryanve
참고; 'delete v.dataset.foo; '는 Safari에서 작동하지 않습니다. 크로스 브라우저 솔루션은 다음과 같습니다. 'v.removeAttribute ('data-foo')' –
@maximdim, Jeremy의 의견을 포함하도록 답변을 업데이트 해 주시겠습니까? Safari 10에서도 여전히 문제가됩니다. Safari 11이 수정되었습니다 (Safari Technical Preview에서 확인) – Dogoku