Как удалить атрибуты data- * с помощью набора данных HTML5

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

Если вы сделаете это:

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:

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

elem.removeAttribute('data-a');

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

эквивалентно

Хм.

34
задан user 19 May 2014 в 03:25
поделиться