2010-10-29 2 views
1

Je veux obtenir l'élément sélectionné, puis insérer ses copies dans quelques endroits.Comment obtenir une copie de l'élément entier dans jQuery?

var template = $("#info-" + country + " > .stats > .template").clone(); 
$(template).insertBefore("#info-" + country + " > .stats > .template"); 

Qu'est-ce que je fais mal qu'il ne copie pas l'élément et l'insère?

P.S. L'élément que je choisis de copier est display: none.

Répondre

1

Vous avez une enveloppe supplémentaire là, template est déjà un objet jQuery, vous avez juste besoin:

var template = $("#info-" + country + " > .stats > .template").clone(); 
template.insertBefore("#info-" + country + " > .stats > .template"); 

Ou un peu plus simple:

var template = $("#info-" + country + " > .stats > .template"); 
template.clone().insertBefore(template); 

Ou utilisez .before() avec une fonction, comme celui-ci :

$("#info-" + country + " > .stats > .template").before(function() { 
    return $(this).clone(); 
}); 
+0

Hmmm, essayé le 3ème exemple et rien ne s'est passé .. Exemple en direct: http: //apps.s tarchat.ee/stats.php – Rihards

+0

@Richards - votre sélecteur ne correspond pas à votre balisage, il y a un '.map' dedans, comme ceci:' $ ("# instance-" + country + "> .content> .stats > .map> .template ")' –

+0

Bwaah, je n'y ai même pas prêté attention - je pensais que ça vérifiait tous les enfants, n'est-ce pas? Grand merci! :) – Rihards

Questions connexes