document.createElement()にタグではなくHTMLを指定してみる(IE限定)

時間ないから3分で。

  var elm = document.createElement("<div style='background-color: blue; height: 100px; width: 100px;'></div>"); 
  document.body.appendChild(elm);

これで、画面に青い100pxのボックスが登場します。
DOMの仕様にはない用法です(MSDNには載ってる)。

document.createElement("<div style='background-color: blue; height: 100px; width: 100px;'><select><option></option></select></div>");

悪乗りしてガーって作ろうとしたらダメでした(青いボックスは生成される)。
innerHTMLのほうが便利なので、なんか中途半端な独自仕様ですね。

IE6で確認しました。

DOM Rangeが使える環境(Firefox2+,Opera9+,Safari3+)なら、innerHTMLいらずで、ガーって書けます。

2008-07-23追記。

return document.createRange().createContextualFragment("<div style='background-color: blue; height: 100px; width: 100px;'><select><option></option></select></div>");

こうすると、htmlのDocumentFragmentを取得できます。innerHTMLのように副作用(入れ物としてのdivが不要)もなく高速です。