2009-07-10 7 views
1

J'ai plusieurs liens dont le contenu de texte je voudrais remplacer avec une image générée automatiquement basée sur le contenu du texte.Accéder au contenu de l'élément actuellement sélectionné dans une instruction html (val) dans jQuery?

Il ressemble actuellement à ceci:

<a href="blabla" class="mLink"> 
<span class="mText">The Text in Question</span> 
</a> 

et je voudrais avoir soit

<a href="blabla" class="mLink"> 
<img src="/ImageTextHandler.ashx?message=The+Text+in+Question" alt="The Text in Question"/> 
</a> 

ou

<a href="blabla" class="mLink"> 
<span class="mText"> 
    <img src="/ImageTextHandler.ashx?message=The+Text+in+Question" alt="The Text in Question"/> 
</span> 
</a> 

Comment accéder à l'élément en question dans une .replaceWith ou .html afin que je puisse obtenir le contenu du texte?

Répondre

2

essayer cette

$(".mLink").each(function (i) { 

    var thisText = $(this).find(".mText").text(); 
    $(this).html("<img src='/ImageTextHandler.ashx? 
     message=" + thisText + "' alt='" + thisText + "'/>"); 

}); 
1

utilisant les sélecteurs localisés

$(".mLink").each(function() { 
    var text = $("span", this).text(); 
    $("span", this).replaceWith("<img src='/ImageTextHandler.ashx?message="+ 
            text+"' alt='"+text+"' />"); 
}); 
1
$(function() {  
    var mySpan = $('a.mLink span.mText'); 
    var text = mySpan.text(); 
    var link = text.split(' ').join('+'); 

    mySpan.replaceWith($("<img src='/ImageTextHandler.ashx?message=" + link + "' alt='" + text + "'/>")); 
}); 

Working Demo here

code de démonstration

$(function() { 

    $('#button').click(function() { 

     $('a.mLink span.mText').each(function() {  
     var text = $(this).text(); 
     var link = text.split(' ').join('+'); 
     $(this).replaceWith($("<img src='/ImageTextHandler.ashx?message=" + link + "' alt='" + text + "'/>")); 
     }); 

    }); 
}); 
+0

belle conversion en lien format. Mais cela fonctionnera-t-il pour plusieurs liens? Ne vont-ils pas tous finir par la même chose? – peirix

+0

Pas si vous effectuez l'opération sur chaque élément correspondant comme dans l'exemple :) –

0

Essayez quelque chose comme ça ...

$(".mText").each(function(){ 
    var url = "/ImageTextHandler.ashx?message=" + escape($(this).text()); 
    var image = $("<img>"); 
    image.attr("src") = url; 
    image.attr("alt") = $(this).text(); 
    $(this).text(""); 
    $(this).append(image); 
}); 
+0

vous avez mal adapté vos citations devrait être $ (""); – Josh

+0

Malédiction ces gros doigts :-) Merci pour cela - J'ai corrigé l'erreur. – belugabob

Questions connexes