Jeśli chodzi o modyfikowanie/tworzenie HTMLu, to w kategorii "elegancja" prym wiedzie Angular - po odpowiednim zdefiniowaniu widoku HTML, elementy mogą być zmieniane/generowane automatycznie na podstawie zwracanego JSONa lub ustawianych wartości w modelu.
Natomiast jeśli chodzi o czysty jQuery, to widzę trzy metody:
- Taka, jaką opisałeś - tworzenie kodu html za pomocą $('<znacznik />', {'cecha':'wartosc'}) - jest to rozwiązanie najbardziej "eleganckie", dobrze się to sprawdza przy mniej skomplikowanych strukturach. Przy bardziej skomplikowanych i/lub wielu zagnieżdżeniach można się szybko pogubić;
- Prototypy, czyli widok HTML sparsowany do zmiennej lub ukryty kontener z kodem html, który po otrzymaniu danych z AJAXa jest pobierany, uzupełniany/przetwarzany i dopiero potem wyświetlany;
- Generowanie widoku HTML po stronie backendu - JS musi tylko zapakować go do kontenera docelowego. Ale to też ma swoje wady;
Jest jeszcze oczywiście sposób 'na chama', czyli generowanie kodu HTMLowego bezpośrednio w JS - niby działa, ale nie jest to ani ładne, ani dobre w utrzymaniu;