用Jquery代替笑脸图片文字

问题描述:

请老兄,我是Jquery的新手。自上周以来我一直在寻找合适的帮助,但我找不到任何帮助。我想用jQuery替换带笑脸图片的文本,但我不知道如何运行它。例如,我想将此文字“我感觉:happy;”替换为“我感觉<img src='happy_face.gif' />”和“他是:sick;”替换为“他是<img src='sick.gif' />”。 这是我迄今为止得到,但它仍然显示文本而不是图像:提前用Jquery代替笑脸图片文字

+0

欢迎的StackOverflow!我们要求您发布您已经尝试的方法。 – kingkode

:) :(
<script src="js/jscript.js"></script> 
<script> 
var emotes = [ 
    [':happy;', 'happy.gif'], 
    [':sick;', 'sick.gif'] 
]; 

function applyEmotesFormat(body){ 
    for(var i = 0; i < emotes.length; i++){ 
     body = body.replace(new RegExp(emotes[i][0], 'gi'), '<img src="emotes/' + emotes[i][1] + '">'); 
    } 
    return body; 
} 

感谢其实原因很简单。 你只需要一行找到,并在HTML替换字符串实例: $("body").html($("body").html().replace(/:happy;/g,'<div class="happy-face"></div>'));

这台$("body").html()$("body").html():happy;<div class="happy-face"></div>取代。

/:happy;/g是正则表达式查找的字符串:happy;全球(g

https://jsfiddle.net/heowqt1u/2/

+1

感谢kingkode。它工作完美 –

您可以使用下面的代码:

var a = [[':happy;','<img src="happy_face.gif" />'],[':sick;',"<img src='sick.gif' />"]]; 
a.forEach(function(item) { 
    $('p').each(function() { 
     var text = $(this).html(); 
     $(this).html(text.replace(item[0], item[1])); 
    }); 
}); 

工作示例这里:Smiley codes replace