Vielleicht mache ich etwas falsch, aber ich habe keine gute Möglichkeit gefunden, grundlegende HTML/DOM-Strukturen wie Listen dynamisch zu erstellen. Einfaches Beispiel wäre der Aufbau einer Tabelle (Tabellenelement, Zeile, Zellen, mit richtig escaped Textinhalt) gegeben Eingabe wie json (Objekte).
Das Problem, das ich habe, ist, dass die meisten Aufrufe (wie z.B. ".append()", ".html()", ".text()") nicht intuitiv zu verketten sind (jedenfalls für mich). Zum Beispiel, Sie kann nicht etwas tun wie:
$("#divId").append("<table>").append("<tr>").append("<td>").text("some text");
text()-Aufruf scheint den Inhalt auf der Hauptebene zu löschen; und Anhänge fügen ebenfalls Dinge im selben Bereich hinzu. Ich würde erwarten, dass appennd() den hinzugefügten Inhalt zurückgibt, aber es scheint seinen eigenen Kontext zurückzugeben.
Ich weiß, dass es eine einfache "appendText()"-Erweiterung gibt, die beim letzten Teil hilft. Aber wie sieht es mit anderen aus?
Im Moment greife ich auf DOM zurück, und zwar in etwa so
$("#divId")[0].appendChild(document.createElement("table"))....
aber das ist ziemlich langatmig.
Ich hoffe also, dass ich etwas völlig Offensichtliches übersehe... aber was? Ein anderer Aufruf als append()?
Ich habe versucht, jQuery-Referenzdokumente zu durchsuchen und zu googeln, aber die meisten Dokumente verwenden einfach "alles in einen String einbetten", was Probleme mit sich bringt, einschließlich der Tatsache, dass Textinhalte nicht richtig zitiert werden.
(außerdem: nein, dies ist kein Duplikat von "JQuery: HTML im 'Speicher' statt im DOM aufbauen"