Comment puis-je obtenir tous les div du contenu et de l'annexer à un autre div?
J'ai 2 div.
div1 et div2. Je veux obtenir tout le contenu de div1 et de l'annexer à div2 et puis fadeOut div1.
J'ai essayé:
$('#div1').append('#div2');
$('#div1').fadeOut();
ou
$('#div1').appendTo('#div2');
$('#div1').fadeOut();
et
$('#div1').html('#div2');
$('#div1').fadeOut();
mais aucune ne semble fonctionner pour moi.
Ce que j'ai fait une erreur?
OriginalL'auteur jQuerybeast | 2012-01-05
Vous devez vous connecter pour publier un commentaire.
Le problème avec
.html()
méthodes est qu'elle convertit les éléments du DOM HTML et vice-versa. Vous perdrez tous les gestionnaires d'événements et les données liées à ces éléments.Utilisation
.contenu()
[docs] à la place:ou si vous souhaitez copier le contenu:
Il est toujours utile de lire la documentation lorsque vous utilisez des méthodes. E. g.
ajoute la chaîne
#div2
à l'élément avec l'IDdiv1
. La documentation dit:et
Similaires pour
$('#div1').html('#div2');
:Il suffit de remplacer le contenu de
#div1
avec la chaîne'#div2'
.De l'autre côté
aura pour effet d'ajouter l'élément avec l'ID
div1
à l'élément avec l'IDdiv2
:Le jQuery documentation est assez bonne, je vous recommande de le lire.
#div1
plutôt qu'une simple copie de ce qui peut être bien, mais probablement la peine de mentionner. Cela signifie également que lafadeOut
ne peut pas être vu, car le contenu de l'élément est déplacé.La question ne mentionne que pour obtenir le contenu de a à b. Mais bon, on pourrait utiliser
copy
.Ouais, juste pensé qu'il pourrait être intéressant de souligner le fait que, bien que le résultat peut être le même avec ce et le
html
solution, le DOM sera différent. Cependant, lacontents
solution ne signifie lafadeOut
peut ne pas être visible, car il n'y a rien à gauche de l'élément.Je vous remercie. Bien expliqué
Vous avez absolument raison, il ne serait pas logique de la fermeture de l'élément s'il n'existe pas de contenu à l'intérieur. Il devrait fonctionner correctement lorsque le clonage le nœud premier. Je vous remercie pour votre participation!
OriginalL'auteur Felix Kling
Vous pourriez obtenir le code HTML de
#div1
et d'ajouter que pour#div2
:Voici un exemple de travail.
Notez que ceci est similaire à votre troisième exemple, qui n'a pas fonctionné parce que le
html
méthode prend une chaîne et ajoute les éléments sélectionnés. Dans votre cas, il serait tout simplement d'ajouter la chaîne littérale "#div2". Vous avez besoin d'obtenir le code HTML que vous souhaitez ajouter à partir de#div1
, et d'ajouter que.Également noter que
fadeOut
cache simplement l'élément (il définitdisplay:none
), et ne pas l'enlever de la DOM. Je ne suis pas sûr si c'est ce que vous voulez ou pas.div2
, auquel cas vous devez remplacerappend
avechtml
.Oui, bien que la question n'dire "annexer à div2".
Simple et sympathique.
OriginalL'auteur James Allardice
C'est un petit exemple pour vous placer au-dessous du texte au format HTML
et le script ci-dessous
OriginalL'auteur Murtaza
html()
nous permettrait de remplacer le contenu à l'intérieur de div2.OriginalL'auteur sushil bharwani
devrait fonctionner.
OriginalL'auteur amiuhle