molily: createElement, checkbox und der IE

Beitrag lesen

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 ist setAttribute() 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