var pfd = document.createElement('button');
pfd.type = 'button';
>
> ~~~javascript
var pfd = document.createElement('button');
> pfd.setAttribute('type', 'button');
Danke für diese Ergänzungen. Das kann ich bestätigen.
Die Empfehlung, auf
setAttribute()
zu verzichten, kann man also so allgemein doch nicht stehen lassen; manchmal istsetAttribute()
geradezu vonnöten.BTW, auch in anderen Browsern, die 'dataset' noch nicht beherrschen:
if (foo.dataset) foo.dataset.barBaz = quz;
else foo.setAttribute('data-bar-baz', 'quz');
Wieso braucht man da notwendig setAttribute?
foo['data-bar-baz'] = 'quz'; ginge theoretisch auch, müssten die Browser auch schlucken.
Wobei eigentlich nichts dagegen spricht, in Browsern, die ohnehin nicht dataset unterstützen, die Camel-Case-Schreibweise zu verwenden. Also einfach als Alternative
foo.dataBarBaz = 'quz';
Kommt ja letztlich auf dasselbe heraus; beim Element werden Daten gespeichert. Wobei ich in diesen Browsern eher ein System einsetzen würde, wie es jQuery verwendet. Dabei wird nur ein Key am Element gespeichert und die Nutzdaten in einem von jQuery verwalteten zentralen Objekt. Das erleichtert das Aufräumen und das Verhindern von Memory-Leaks.
Mathias