2010-02-11 17 views
134

Ich habe eine bestimmte Textbox und ich möchte ein div danach hinzufügen. Ich habe die .append() Funktion versucht, aber das fügt nur das div im Element hinzu.jQuery: Element nach einem anderen Element hinzufügen

Zum Beispiel habe ich:

und ich mag, dass in ändern:

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

Antwort

228

versuchen, die after() Methode:

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

Documentation

+5

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

+7

Das stimmt, aber es hängt davon ab, wie Sie es am liebsten programmieren. Normalerweise hätte ich den Eingang "#bla" bereits ausgewählt und dann den zusätzlichen Inhalt hinzugefügt. Nur meine Vorliebe, aber ich bin mir nicht sicher, ob eine der Methoden einen Geschwindigkeitsvorteil hat. – Rowan

6

Zu allererst sollte input Element keinen abschließenden-Tag (von http://www.w3.org/TR/html401/interact/forms.html#edef-INPUT: End Tag: verboten ).

Zweite Sache, Sie benötigen die after(), nicht append() Funktion.

+0

Richtig, aber das ist, was passiert, wenn ich die .append() Funktion versuchen. – skerit

+2

Wenn es XHTML ist, sollte das Eingabeelement geschlossen sein (aber nicht mit einem End-Tag). – CiscoIPPhone

+2

In HTML4 '' sollte nicht geschlossen werden. –

30

versuchen

.insertAfter() 

hier

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

Sollte Ihr Code nicht mehr wie '$ ('

') .insertAfter ('# bla')' anstatt $ ('# bla') sein. InsertAfter (content); '? – Rowan

0

Gelöst jQuery: In Element nach dem anderen Element

<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> 
Verwandte Themen