Comment faire pour supprimer des données* les attributs à l'aide de HTML5 dataset

Selon le jeu de données spec, comment est de l'élément.dataset visant à supprimer les données d'attributs? Considérer:

<p id="example" data-a="string a" data-b="string b"></p>

Si vous faites cela:

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'});

les DOM devient présent dans Chrome et 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>

Le Chrome/Firefox mise en œuvre imite setAttribute. Il s'applique essentiellement .toString() premier. Cela fait sens pour moi, sauf pour le traitement de null parce que je m'attends à ce que null serait de supprimer l'attribut. Sinon, comment fonctionne le jeu de données de l'API ne soit l'équivalent de:

elem.removeAttribute('data-a');

Et ce sur les attributs booléens:

<p data-something> est équivalent à <p data-something=""> Hmm.

InformationsquelleAutor ryanve | 2012-02-08