我试图用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>
我尝试过一些事情,但要么我最终更换整个字符串,要么浏览器不呈现图像而是显示html
this is a <img src="happy.png"> face
这是一个混乱的聊天应用程序,我非常新,所以如果你可以在你的代码中包含一些有用的解释:)
答案 0 :(得分:5)
看起来像(使用jQuery):
$('div#log').find('p').html(function( html ) {
return html.replace(':)', '<img src="happy.png"/>');
});
显然,这应该会更复杂一点。我可以想象一个查找对象,您可以将字符串链接到图像,例如:
var myMap = {
'\\:\\)': 'happy.png', // need to escape those for regex
'\\:\\(': 'sad.png',
'\\:\\/': 'other.png'
};
$('div#log').find('p').html(function( _, html ) {
for(var face in myMap) {
html = html.replace( new RegExp( face, 'g' ), '<img src="' + myMap[ face ] + '"/>' );
}
return html;
});
答案 1 :(得分: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/