2016-04-26 84 views
2

請老兄,我是Jquery的新手。自上週以來我一直在尋找合適的幫助,但我找不到任何幫助。我想用jQuery替換帶笑臉圖片的文本,但我不知道如何運行它。例如,我想將此文字「我感覺:happy;」替換爲「我感覺<img src='happy_face.gif' />」和「他是:sick;」替換爲「他是<img src='sick.gif' />」。 這是我迄今爲止得到,但它仍然顯示文本而不是圖像:提前用Jquery代替笑臉圖片文字

+0

歡迎的StackOverflow!我們要求您發佈您已經嘗試的方法。 – kingkode

回答

1

:) :(
<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。它工作完美 –

1

您可以使用下面的代碼:

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