Я знаю, что вы не просили об этом, но jQuery делает это довольно легко.
var $elems = $("<header/><nav/><section/><article/><aside/><footer/>");
$( "header", $elems ).html("Sweeeeet!");
// etc...
По сути, я только что создал 6 элементов dom и вернул их в объект jQuery (который, как я полагаю, похож на список узлов). Затем я могу работать с этими предметами по своему усмотрению или даже проходить через них:
$elems.each( function(){ /* Loopy stuff */ } );
Конечно, не забудьте добавить их в документ
$("body").append( $elems );
См. Также шаблонов , чтобы узнать о не столь уродливой генерации и встроенных инструментах.