Anstatt mühsam nach Problemumgehungen für jeden Attribut- und Ereignistyp zu suchen, wenn Sie die folgende Syntax verwenden:
elem = document.createElement("div");
elem.id = 'myID';
elem.innerHTML = ' my Text '
document.body.insertBefore(elem,document.body.childNodes[0]);
Gibt es eine Möglichkeit, das gesamte HTML-Element als Zeichenfolge zu deklarieren? mögen:
elem = document.createElement("<div id='myID'> my Text </div>");
document.body.insertBefore(elem,document.body.childNodes[0]);
javascript
html
Der Blitz
quelle
quelle
Du willst das
quelle
body
Elemente zu funktionieren , funktioniert aber für jedes andere Element.<body>
. Tatsächlich ist das Ausführen<body>
meine Standardmethode, um Dinge wie Stylesheets über die Konsole in Webseiten einzufügen. Welches Problem haben Sie?<body>
undefiniert wären, wären es auch alle anderen Elemente, also ist dies wahrscheinlich nicht das Problem von Phill.Schauen Sie sich insertAdjacentHTML an
Position ist die Position relativ zu dem Element, das Sie neben einfügen:
'beforebegin' Vor dem Element selbst
'afterbegin' Nur innerhalb des Elements, vor seinem ersten Kind
'beforeend' Nur innerhalb des Elements, nach seinem letzten Kind
'afterend' Nach dem Element selbst
quelle
In JavaScript der alten Schule können Sie Folgendes tun:
Als Antwort auf Ihren Kommentar:
Sie müssen den neuen HTML-Code jedoch in das DOM einfügen. Deshalb
innerHTML
wird es im JavaScript-Beispiel der alten Schule verwendet. DasinnerHTML
von demBODY
Element wird mit dem neuen HTML vorangestellt. Wir berühren den vorhandenen HTML-Code in der nicht wirklichBODY
.Ich werde das oben genannte Beispiel umschreiben, um dies zu verdeutlichen:
Die Verwendung eines JavaScript-Frameworks würde diesen Code weniger ausführlich machen und die Lesbarkeit verbessern. Mit jQuery können Sie beispielsweise Folgendes tun:
quelle
document.getElementsByTagName('body')[0]
kann in der Tat durchdocument.body
guten Punkt ersetzt werden. Wenn Sie jedoch den neuen HTML-Code anstelle des KÖRPERS an ein anderes vorhandenes Element anhängen oder anhängen möchten, müssen Siedocument.getElementById()
und / oder verwendendocument.getElementsByTagName()
. Deshalb habe ich es im Beispiel verwendet.Meines Wissens, das, um fair zu sein, ziemlich neu und begrenzt ist, ist das einzige potenzielle Problem bei dieser Technik die Tatsache, dass Sie daran gehindert werden, einige Tabellenelemente dynamisch zu erstellen.
Ich verwende ein Formular für Vorlagen, indem ich einem versteckten DIV "Vorlagen" -Elemente hinzufüge und dann mit cloneNode (true) einen Klon erstelle und ihn nach Bedarf anhänge. Beachten Sie, dass Sie sicherstellen müssen, dass Sie die IDs nach Bedarf neu zuweisen, um Doppelarbeit zu vermeiden.
quelle
Wie bereits erwähnt, kann die praktische Funktion zum Voranstellen von jQuery emuliert werden:
Während einige sagen, es sei besser, sich nicht mit innerHTML " herumzuschlagen" , ist es in vielen Anwendungsfällen zuverlässig, wenn Sie dies wissen:
https://developer.mozilla.org/en-US/docs/Web/API/Element/innerHTML
Oder:
insertAdjacentHTML
ist wahrscheinlich eine gute Alternative: https://developer.mozilla.org/en-US/docs/Web/API/Element/insertAdjacentHTMLquelle
Wenn Sie HTML-Code in das Tag einer vorhandenen Seite einfügen möchten, verwenden Sie Jnerator . Dieses Tool wurde speziell für dieses Ziel erstellt.
Anstatt den nächsten Code zu schreiben
Sie können eine verständlichere Struktur schreiben
quelle