I also often face this issue.
chose for himself three approaches:
\r
1. if you wish to generate a little code, something itrade a text box with the label, using jquery: $("...).after(...). Convenient because you can brashirovanie links to the items, which are then hung obrabotkami events, etc.
\r
2. structure can be a little more complicated, but not much, to complain about $.nano is an excellent plugin and very small. I even like how it is written. However there are limitations — the arrays of values, but
\r
3. If big data is to render a go between the client and the server, I've been here the entire HTML generated on the server, and then it is inserted. The fact that I believe that the site still needs to be able to work without JS (this is a separate question — why). So if JS for some reason doesn't work comes a normal page. The server decides, depending on ajax or naaah the request comes and gives either full page or piece. By the way, helps ajaxify jquery plugin