データセットの仕様によると、 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'});
ChromeとFirefoxでは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>
Chrome/Firefoxの実装はsetAttributeを模倣しています。基本的に.toString()
最初に適用されます。これは、属性が削除null
されると予想されるため、の扱いを除いて、私には理にかなっています。null
それ以外の場合、データセットAPIは次と同等の機能をどのように実行しますか。
elem.removeAttribute('data-a');
そして、ブール属性についてはどうでしょうか。
<p data-something>
<p data-something="">
うーんと同等です。