jQuery dynamisch erstellen Tabelle / tr / td oder etc und Attribute anhängen

8

In einem Beispiel habe ich diese Struktur (kleines Beispiel):

%Vor%

In jQuery würde ich es dynamisch erstellen wie:

%Vor%

und etc etc ... (viele andere Dinge zu schreiben). Danach würde ich es einfach anhängen:

%Vor%

Gibt es eine andere Möglichkeit, eine solche Struktur dynamisch mit jQuery zu schreiben? Das ist ein Problem für mich, weil ich eine große Struktur habe, nicht so klein, wie ich im Beispiel gezeigt habe. Der Hauptgrund ist, dass ich bessere Lesbarkeit für mich und andere Entwickler bekommen möchte, die diesen Code beibehalten.

    
faya 02.03.2010, 12:18
quelle

5 Antworten

17

Können Sie aus Ihrer Zeichenfolge eine "Vorlage" erstellen? Wenn ja, dann speichern Sie es in einer "konstanten" Variablen (zB im globalen Gültigkeitsbereich definiert), die Platzhalter für aktuelle Variablen enthält, wie {0} , {1} etc, wie Sie es in der% code% Methode von C # verwenden würden.

Sie hätten also einen Code wie diesen:

%Vor%

Sie würden dann die string.format-Implementierung gemäß dieser Antwort verwenden: Äquivalent von String.format in jQuery

    
naivists 02.03.2010, 12:27
quelle
18

Hier ist ein vereinfachtes Beispiel:

%Vor%

Wickle den Zeilenteil in eine Schleife, ersetze ihn durch Variablen und es ist meiner Meinung nach einfacher zu warten / zu lesen, aber ich bin an jQuery gewöhnt, so dass deine Laufleistung variieren kann, nur eine Option.

Eine Randnotiz, da dies .text() überall verwendet, hilft es Cross-Site-Scripting-Angriffe innerhalb Ihrer Ausgabe zu verhindern.

    
Nick Craver 02.03.2010 12:31
quelle
1

Sie könnten einen StringBuilder erstellen, ähnlich wie in C #. Hier ist ein Ausschnitt aus Telerik-Erweiterungen für ASP.NET MVC :

%Vor%

Auf diese Weise können Sie den folgenden Code haben:

%Vor%

Der Vorteil dieses Ansatzes ist, dass Sie eine schnelle Verkettung haben (Array-Joins funktionieren besser unter IE6), und Sie könnten das Objekt um eine andere nützliche Funktion erweitern (zB catIf , die einen booleschen Ausdruck benötigt, oder% co_de) %, die eine gegebene Zeichenfolge mehrmals wiederholt).

    
Alex Gyoshev 02.03.2010 12:46
quelle
1

Oder Sie könnten Strings miteinander verknüpfen, also nutzen Sie die Funktion array.join .

%Vor%     
poo 02.03.2010 13:59
quelle
-2
%Vor%     
Golak Jena 06.04.2012 09:56
quelle