Einfügen von Inhalt Vor und Nach einem Element Ohne Autoclosing tags
Sagen, ich habe das folgende:
<div id="content">content</div>
Und ich möchte einfügen, ein paar Sachen, bevor er ** (beachten Sie die ungeschlossene div)**:
$("#content").before("<div>pre-pre-content</div><div>pre-content ");
Und einige dann etwas mehr nach ** (beachten Sie, ich bin jetzt schließen die div)**:
$("#content").after(" post-content</div><div>post-post-content</div>");
Meine gewünschte Ausgabe:
<div>pre-pre content</div>
<div>
pre-content <div id="content">content</div> post-content
</div>
<div>post-post content</div>
Statt, was ich bekomme, ist:
<div>pre-pre content</div>
<div>pre-content</div>
<div id="content">content</div>
<div>post-content</div>
<div>post-post content</div>
Da jQuery automatisch "korrigieren" nicht geschlossene tags.
Gibt es eine Möglichkeit zu nutzen .wrap (), um verschiedene Inhalte vor und nach einem element, ohne automatisch schließenden tags?
Hinweis, ich nicht Folgendes tun, weil der eine nicht verbundene Einschränkung:
$("#content").html("<div>Content before " + $("#content).html() + " Content after</div>")
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht einfügen, teilweise oder nicht geschlossene tags. Einfügen von Elementen in der DOM einfügen müssen, nur ganze Elemente.
Ihre Auswahlmöglichkeiten sind:
Extrahieren Sie das element, das Sie wollen gewickelt werden, in Ihrem neuen element, setzen Sie die neue container-Objekt und setzen Sie dann Ihren ursprünglichen element in den container ein.
Manipulieren Sie den HTML-von einem Elternteil direkt (nicht generell empfohlen).
Verwenden Sie die jQuery
.wrap()
Methode hat die option #1 für Sie. Sehen hier für mehr info auf die jQuery -.wrap()
.