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が不要)もなく高速です。