2016-04-26 2 views
2

Пожалуйста, ребята, я новичок в JQuery. С прошлой недели я искал подходящую помощь, но я не могу ее найти. Я хочу заменить текст смайликом, используя jquery, но я понятия не имею, как его запустить. Например, мне нужен текст «Я чувствую :happy;» для замены на «Я чувствую <img src='happy_face.gif' />» и «Он :sick;» заменяется на «Он <img src='sick.gif' />». Вот что я получил до сих пор, но он по-прежнему отображается текст вместо изображения:Замена текста смайликом с помощью JQuery

:) :(
<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; 
} 

Заранее спасибо

+0

Добро пожаловать в StackOverflow! Мы просим вас опубликовать то, что вы уже пробовали. – kingkode

ответ

1

Это на самом деле довольно просто. Вам нужно всего лишь одну строку для поиска и замены строк экземпляры в 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 является RegEx найти строку :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

Смежные вопросы