Wie kann ich ein Element nach einem anderen Element hinzufügen?


174

Ich habe ein bestimmtes Textfeld und möchte danach ein Div hinzufügen. Ich habe das versucht.append() Funktion , aber das fügt nur das div im Element hinzu.

Zum Beispiel habe ich:

<input type="text" id="bla" />

und ich möchte das ändern in:

<input type="text" id="bla" /><div id="space"></div>

Antworten:


287

Versuchen Sie es mit der after()Methode:

$('#bla').after('<div id="space"></div>');

Dokumentation


8
Die Methoden .after () und .insertAfter () führen dieselbe Aufgabe aus.
— Rifat

7
Das ist richtig, aber es hängt davon ab, wie Sie es lieber codieren. Normalerweise würde ich die Eingabe '#bla' bereits ausgewählt haben und anschließend den zusätzlichen Inhalt hinzufügen. Ich bin mir jedoch nicht sicher, ob eine der beiden Methoden einen Geschwindigkeitsvorteil hat.
— Rowan

37

Versuchen

.insertAfter()

Hier

$(content).insertAfter('#bla');

17
Sollte Ihr Code nicht eher so sein $('<div id="space"></div>').insertAfter('#bla')als $('#bla').insertAfter(content);?
— Rowan

6

Zunächst inputsollte das Element kein schließendes Tag haben (von http://www.w3.org/TR/html401/interact/forms.html#edef-INPUT : End-Tag: verboten).

Zweitens brauchen Sie die after() , nicht append()Funktion.


Richtig, aber genau das passiert, wenn ich die Funktion .append () ausprobiere.
— Skerit

2
Wenn es sich um XHTML handelt, sollte das Eingabeelement geschlossen sein (jedoch nicht mit einem End-Tag).
— CiscoIPPhone

2
In HTML4 <input>sollte nicht geschlossen werden.
— Derek 18 會 功夫

1

Gelöste jQuery: Element nach einem anderen Element hinzufügen

<script>
$( "p" ).append( "<strong>Hello</strong>" );
</script>

ODER

<script type="text/javascript"> 
jQuery(document).ready(function(){
jQuery ( ".sidebar_cart" ) .append( "<a href='http://#'>Continue Shopping</a>" );
});
</script>

2
Das ist falsch. Dadurch wird das Element innerhalb des übergeordneten Elements angehängt, genau wie im angegebenen OP. Lesen Sie die Frage erneut und überarbeiten Sie Ihre Antwort.
— Evan Wieland
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.