Comment puis-je ajouter un élément après un autre élément?

174

J'ai une certaine zone de texte et je veux ajouter un div après. J'ai essayé la .append()fonction, mais cela n'ajoute que le div dans l'élément.

Par exemple, j'ai:

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

et je veux changer cela en:

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

Réponses:

289

essayez d'utiliser la after()méthode:

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

Documentation

Sorbier des oiseleurs
la source
8
Les méthodes .after () et .insertAfter () exécutent la même tâche.
Rifat
7
C'est correct, mais cela dépend de la façon dont vous préférez le coder. J'aurais normalement déjà sélectionné l'entrée '#bla', puis ajouterais le contenu supplémentaire par la suite. Purement ma préférence cependant, je ne suis pas sûr que l'une ou l'autre méthode ait un avantage de vitesse.
Rowan
37

essayer

.insertAfter()

ici

$(content).insertAfter('#bla');
Rifat
la source
17
Votre code ne devrait-il pas ressembler $('<div id="space"></div>').insertAfter('#bla')plutôt à $('#bla').insertAfter(content);?
Rowan
6

Tout d'abord, l' inputélément ne doit pas avoir de balise de fermeture (de http://www.w3.org/TR/html401/interact/forms.html#edef-INPUT : Balise de fin: interdite).

Deuxième chose, vous avez besoin du after(), pas de la append()fonction.

naïvistes
la source
Correct, mais c'est ce qui se passe lorsque j'essaye la fonction .append ().
skerit
2
S'il s'agit de XHTML, l'élément d'entrée doit être fermé (mais pas avec une balise de fin).
CiscoIPPhone
2
En HTML4 <input>ne doit pas être fermé.
Derek 朕 會 功夫
1

JQuery résolu: ajouter un élément après un autre élément

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

OU

<script type="text/javascript"> 
jQuery(document).ready(function(){
jQuery ( ".sidebar_cart" ) .append( "<a href='http://#'>Continue Shopping</a>" );
});
</script>
Ashar Zafar
la source
2
Ceci est une erreur. Cela ajoute l'élément dans l'élément parent, tout comme l'OP indiqué. Pensez à relire la question et à réviser votre réponse.
Evan Wieland