2010-12-10 5 views
0

Je devrais ajouter un élément <span> à un élément d'ancrage, avec son contenu. Comme ceci:JQuery ajoute à un élément son propre contenu

<div class="button"><a href="#">content text</a></div> 

Je en ai besoin:

<div class="button"><a href="#">content text<span>content text</span></a></div> 

J'essaie dans jQuery, mais je ne peux pas mettre le contenu:

$('.butt a').append('<span>'+???+'</span>'); 

S'il vous plaît aidez-moi, si vous le pouvez ! Je vous remercie!

Répondre

2

Vous pouvez passer une fonction à .append(), comme ceci:

$('.button a').append(function(i, html) { return '<span>'+html+'</span>'; }); 

You can test it out here, ou un peu plus sûr approche DOM (ce que je partirais avec):

$('.button a').append(function(i, html) { return $('<span />',{html:html}); }); 

You can test that version here. Dans les deux cas ci-dessus le html la fonction reçoit le html/texte courant dans le <a> que vous ajoutez à ... ce qui fonctionne parfait ici.

+0

+1 n'a pas réalisé append pourrait prendre une fonction –

+0

@Jonathon - je prendrais une autre regard sur l'API depuis 1.4 ... un * lot * de méthodes a obtenu le traitement "prend une méthode", peut vraiment réduire le code dans de nombreux cas :) –

+0

fera, merci :) Ahh - jQuery me fait aimer plus et plus chaque jour. –

0

Votre problème est que vous essayez de sélectionner la classe butt - mais votre classe est button:

$('.button a').append('<span>Your span text here</span>'); 
+0

Je pense que vous avez manqué la question;) Il demande comment * obtenir * dynamiquement ce contenu, vous l'avez codé en dur. –

+0

Ah vrai. Je ne savais pas s'il posait des questions sur le bit dynamique (que je n'ai pas réalisé à propos de la fonction d'ajout, gentille touche) ou juste l'erreur avec la classe :) –

+0

Oui, tu m'as manqué. Désolé pour mon anglais ... – kree

Questions connexes