2011-12-20 6 views
0
$('.footnote').clone().appendTo('#allfootnotes').append('<br>'); 

J'ai un tas d'éléments .footnote tout au long de la page, en bas de la page que je veux énumérer toutes les notes de bas de page. Ainsi, chaque note de bas de page sera clonée à #allfootnotes. J'essaie de placer un saut de ligne après chaque .footnote dans l'élément #allfootnotes, donc ils ne sont pas tous mélangés. Comment appliquer le saut de ligne après chaque .footnote une fois qu'il a été cloné à #allfootnotes?Ajouter un saut de ligne après chaque élément est cloné

Et est-ce la meilleure façon de le faire? Dans chaque .footnote, il y a deux balises span, une pour le titre, et une pour le contenu de la note de bas de page (ne sait pas si cela compte ou non).

+0

CSS est le meilleur moyen de modifier les problèmes de mise en page (par exemple "pêle-mêle"). – ThinkingStiff

Répondre

4

On dirait que vous pouvez utiliser les CSS pour faire

#allfootnotes .footnote { 
    margin-bottom: 10px;  
} 

En fonction de votre situation, vous devrez peut-être faire .footnote un élément de niveau bloc avec display: block;

-1
$('.footnote').each(function() { 
    $(this).clone().add('<br/>').appendTo('#allfootnotes'); 
}); 

EDIT S'il vous plaît voir la réponse de Roxon. C'est bien plus propre que d'itérer sur des notes de bas de page.

+1

Juste un conseil: Si vous appelez déjà des éléments 'class', alors vous n'avez pas besoin de la méthode' .each() '. –

+0

@roXon Merci. Jamais tombé sur ".after" jusqu'à maintenant, cependant. – aefxx

0
var allFootNotes = $('#allfootnotes'); 
$('.footnote').each(function(){ 
    $(this).clone().add('<br/>').appendTo(allFootNotes); 
}); 

S'il y a autant notes de pied comme vous dites cache votre $('#allfootnotes') va diminuer la charge sur le navigateur.

Hope this helps

+0

Juste un conseil: Si vous appelez déjà des éléments * class *, vous n'avez pas besoin de la méthode '.each()'. Et il n'y a pas non plus besoin de mettre en cache un élément 'ID', surtout s'il est utilisé/appelé une seule fois. –

+0

Um appendTo() serait invoqué à chaque appel et il a échappé à la présence de nombreux ".footnotes". Si vous déclarez chacun d'entre eux ou si vous avez jQuery, il sera votre ami. –

+0

Une bonne règle est que chaque fois que vous allez évoquer le moteur de sélection plus d'une fois, il serait utile de mettre en cache vos sélections. –

3

DEMO

$('.footnote').clone().appendTo('#allfootnotes').after('<br>'); 

Si vous utilisez XHTML qu'il devrait être <br />

Questions connexes