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.