使用.replace用HTML替换文本?

The*_*des 1 html javascript jquery

我想用jQuery用图像替换文本.我一直在使用.replace函数替换更多文本的文本.如何用html标签替换文本,如<img>标签.

这是我的代码:

function wow() {
  $('.messageBody').each(function() {
      var text = $(this).text();
      var image = '<img class = "emote" src = "trump.png">'
      $(this).text(text.replace(':trump:', image.outterHTML));
  });
}
setInterval(wow, 1000);
Run Code Online (Sandbox Code Playgroud)

这是HTML:

<span class="messageBody">:trump:</span>
Run Code Online (Sandbox Code Playgroud)

win*_*wes 5

如果使用.html而不是.text它将起作用.改变这一行:

  $(this).text(text.replace(':trump:', image.outterHTML));
Run Code Online (Sandbox Code Playgroud)

对此:

  $(this).html(text.replace(':trump:', image));
Run Code Online (Sandbox Code Playgroud)

注意:因为image是一个你不需要的字符串.outerHTML.

如果messageBody内部不仅包含文本(它包含HTML),那么您还需要更改此行:

  var text = $(this).text();
Run Code Online (Sandbox Code Playgroud)

对此:

  var text = $(this).html();
Run Code Online (Sandbox Code Playgroud)

所以完整的代码将是:

function wow() {
  $('.messageBody').each(function() {
      var text = $(this).html();
      var image = '<img class="emote" src="trump.png">';
      $(this).html(text.replace(':trump:', image));
  });
}
setInterval(wow, 1000);
Run Code Online (Sandbox Code Playgroud)