2011-07-04 13 views
3

jqueryまたはjavascriptを使用してテキストを画像に置き換えようとしています。例えばテキストを検索して削除し、jqueryまたはjavascriptを使用して画像を挿入します。

<div id="log"> 
<p>this is a :) happy face</p> 
<p>this is a :(sad face</p> 
<p>these are :/ x(:P other faces</p> 
</div> 

IVEは、いくつかのことを試みたが、私は文字列全体を交換してしまうか、ブラウザで画像をレンダリングし、代わりにHTML

this is a <img src="happy.png"> face 

これはチャットアプリケーションのイムですが表示されませんかあなたのコードのthatdヘルプのいくつかの説明を含めることができますので、もしいじりとイムかなり新しい:)

答えて

5

(jQueryのを使用して)次のようになります。

$('div#log').find('p').html(function(html) { 
    return html.replace(':)', '<img src="happy.png"/>'); 
}); 

これは明らかに少し洗練されています。たとえば、文字列を画像にリンクするルックアップオブジェクトを想像してみてください。

+0

+1良い解決策。 ':'や ''/''をエスケープする必要はありません。実際には、式に無効なエスケープ文字列がある場合、どうなるか分かりません。文字列に '' \ ''と ':'をマッチさせようとするかもしれないので、式を "壊す"ことさえあります。 –

+0

非常にいいです。あなたのコードは本当にうまく動作し、堅牢なソリューションであり、あなたに感謝しています! – POrtia

0

これを試しましたか?ここ

<div id="log"> 
<p id='my'>this is a :) happy face</p> 
<p>this is a :(sad face</p> 
<p>these are :/ x(:P other faces</p> 
</div> 

var p = $('#my').html(); 
var r = p.replace(':)', '<img src="happy.jpg">'); 
$('#my').html(r); 

フィドル:http://jsfiddle.net/PuDMx/

+0

少し修正を加えれば、あなたのコードはうまく動作します。段落タグにidを追加する代わりに、私はp:lastセレクタを使いました。段落が動的に追加されているため、一意ではないため、IDを取得できません。 – POrtia

関連する問題