2009-07-10 62 views
1

我有幾個鏈接其文本內容我想用基於文本內容的自動生成的圖像替換。在jQuery的html(val)語句中訪問當前選定元素的內容?

所以目前看起來是這樣的:

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

,我想有兩種

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

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

如何訪問元素在問題裏面.replaceWith或.html,以便我可以獲取文本內容?

回答

2

試試這個

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

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

}); 
1

使用本地化的選擇

$(".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

代碼從演示

$(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

不錯轉換鏈接的格式。但是,這將工作幾個環節?他們不都會結束嗎? – peirix 2009-07-10 08:35:47

+0

如果您對每個匹配元素執行操作,則請不要執行此操作:) – 2009-07-10 08:48:14

0

嘗試這樣的事情......

$(".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); 
}); 
相關問題