Die dynamische Erstellung von HTML-Elemente mit Javascript?
Möchte ich dynamisch erzeugen einige HTML-Elemente (3 html-element) und dann wieder diesen html-code als string in eine variable. Ich will nicht schreiben Sie den HTML-code in die folgende Funktion ein paar div -, aber, ich will es zurück in eine var.
function createMyElements(id1,id2,id3){
//create anchor with id1
//create div with id 2
//create xyz with id3
//now return the html code of above created just now
}
Wie kann ich dies tun?
Wollen Sie
html-code für Einbauteile in einer var und schließlich werde ich tun-Dokument.getElementbyID("yu").innerHTML = var_containing_code
elements
oder möchten Sie erstellen string
Darstellungen der Elemente?html-code für Einbauteile in einer var und schließlich werde ich tun-Dokument.getElementbyID("yu").innerHTML = var_containing_code
InformationsquelleAutor dojoX | 2011-04-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie ein element erstellen mit
document.createElement
. Nach der Erstellung können Sie Attribute hinzufügen. Wenn Sie möchten, um das element zu zeigen, bis in Ihrem Dokument haben, müssen Sie legen Sie in in den DOM-Baum des Dokuments. Versuchen Sie, um das Spiel mit diesem code:Wenn es nur html Sie wollen, das ist ein Ansatz:
Noch ein anderer Ansatz erstellen Sie ein div, ohne Injektion in den DOM-Baum und die Elemente hinzufügen, dass die Verwendung von DOM-Methoden. Hier ist eine Funktion zum erstellen von 1 element
InformationsquelleAutor KooiInc
Bauen Sie den html-Code als string in eine variable wie
dann wieder die variable html
ja, ich weiß, und Sie können sogar tun es besser und weniger fehleranfällig ist die Verwendung von jquery.
dies ist der FALSCHE Weg, nicht den code schreiben, wie diese. Sie implementieren können, fallen aber später werden Sie fühlen sich dumm.
InformationsquelleAutor Sufendy
Html:
JavaScript:
Der Hauptgrund für die Verwendung eines documentFragment statt nur das hinzufügen der Elemente direkt ist die Geschwindigkeit der Ausführung.
In dieser Größe ist es egal, aber wenn Sie beginnen, hinzufügen von Hunderten von Elementen, schätzen Sie es tun in-memory zuerst 🙂
Mit documentFragment können Sie konstruieren einen ganzen Baum von DOM-Elementen im Speicher und wird nicht afffect die browser-DOM bis zum letzten moment.
Sonst zwingt es den browser zu aktualisieren, für jedes element, das manchmal eine echte Schmerzen zu beobachten.
Zusätzlich möchten Sie vielleicht Lesen Sie den Kommentar von Raziel (Juli 30, 2008 um 1:10 Uhr) @ ejohn.org/blog/dom-documentfragments/#postcomment
Vielen Dank für beide Hinweise. Vor allem die später. Der wichtigste Punkt ist immer noch die Vorteile der Schöpfung der Elemente im Speicher als oposed, indem Sie Sie auf das DOM während Sie entlang gehen. Aber wir agrea auf das Teil. Ich würde sagen, wie Sie das tun, dass es nicht darauf ankommt, ob Sie fügen die Elemente zu einem documentFragment oder andere in-memory-Knoten. Ein Grund, warum ich würde immer noch lieber die documentFragment ist für die readabillity, da ist es doch klar, dass das fragment ist nicht Teil des DOM. Aber bis ich gekostet habe, ist es eine Frage des Geschmacks eher 🙂
getestet, nicht geschmeckt.
Ich habe tatsächlich einige einfache Tests: jsfiddle.net/6WEHc/5. Und es scheint, dass durch die Verwendung von Dokumenten.createElement('div'); ist ein bisschen schneller als Dokument.createDocumentFragment(); Hoffe, das hilft jemand 🙂
InformationsquelleAutor Guidhouse
Hier die einfache Darstellung für die Umwandlung der html-Seite (statisch), javascript-basierten html-Seite (dynamisch).
Lassen Sie uns sagen, Sie haben html-Seite "index.html" (Berufung index_static.html hier).
index_static.html
Können Sie diese Datei öffnen im browser, um zu sehen, die gewünschte Ausgabe.
Nun können erstellen Sie eine javascript-äquivalent zu dieser.
Verwenden online-tool, die zum erzeugen der javascript-Quellcode (der durch einfügen der obigen html-Datei, Quelle). Also, es folgt:
dynamic.js
Und jetzt, Ihre dynamische version des static_index.html wird als unten:
index_dynamic.html
Öffnen Sie die index_dynamic.html auf browser zu überprüfen, die web-Seite (dynamisch, obwohl, down-the-line).
mehr info
InformationsquelleAutor parasrish