Как удалить атрибуты data- *, используя набор данных HTML5

Согласно сспецификация набора данных, какelement.dataset предназначен для удаления атрибутов данных? Рассмотреть возможность:

<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 становится таким в Chrome и Firefox:

<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>

Реализация Chrome / Firefox имитируетSetAttribute, Это в основном относится.toString() первый. Это имеет смысл для меня, за исключением леченияnull потому что я ожидаю, чтоnull удалил бы атрибут. Иначе, как API набора данных делает эквивалент:

elem.removeAttribute('data-a');

А как насчет логических атрибутов:

<p data-something> эквивалентно<p data-something=""> Хм.

Ответы на вопрос(2)

Ваш ответ на вопрос