Definitivamente lo mejor que puedes hacer es por medio de DOM, aunque puede ser también algo engorroso.
Y si definitivamente es es algo muy complejo podrías usar un motor de plantilla como te he comentado:
http://handlebarsjs.com/ (hay varios aquí:
http://garann.github.io/template-chooser/ )
Y si es una RIA lo mejor sería usar un framework como AngularJS o Backbone.
Saludos