6
votes

Comment envelopper un élément existant avec un autre en jQuery?

Comment puis-je créer un

entourant un
.

Mon code est comme suit: xxx < / Pré>

Mais il semble qu'il ne puisse pas insérer un

sans une étiquette de fin. Alors, comment atteindre cela?

6 commentaires

Vous voudrez peut-être envelopper votre code en $ (fonction () {// code ici}); de sorte qu'il ne l'exécute que de la page est entièrement chargée


J'ai une liste dynamique avec un itérateur. Et j'ai besoin d'insérer 3 éléments par div. :(


Kyoka, pas besoin de cela, car le HTML vient avant le script.


Quels sont ces articles? Sont-ils divs?


1 Item == 1 div ... Donc pour 3 articles == 3 divs. J'ai besoin d'insérer les 3 divs dans 1 grand conteneur div


@Inerstellar_Coder: Merci! Je ne savais pas que


5 Réponses :


3
votes

jQuery enveloppe l'API Dom natif, qui fonctionne avec des éléments HTML complètes.

Vous ne pouvez pas insérer la moitié d'une étiquette.

à la place, vous devez créer un nœud complet en créant un $ ('<

') , ajoutant plusieurs éléments à celui-ci, puis en ajoutant l'arborescence entier à la DOM.

2 commentaires

Y at-il un travail autour? Ou comment puis-je insérer trois éléments à l'intérieur d'un div de manière dynamique?


Cela ne fait vraiment rien pour répondre à la question.




1
votes

OK, utilisez-le:

<script>
       var inner=$("#test");
       var outer=$('<div class="outer"></div>');
       outer.html(inner.html());
       inner=outer;
</script>


1 commentaires

Ne devriez-vous pas simplement supprimer votre réponse alors?




1
votes

C'est ce que vous devriez faire:

<script type="text/javascript">
$(function() {
    $('<div class="test3"></div>')
        .insertBefore($('#test'))
        .append($('#test'))
        .append($("#test2"));
}
</script>


0 commentaires