添加带有“<br/>”标记的字符串不起作用

时间:2016-07-02 13:27:04

标签: jquery

我尝试了所有可能的方法,我根本无法在字符串中添加断行,该字符串存储在变量中,然后在特定函数中使用。

HTML code:

<body>
<p id="msg"></p>
</body>

Jquery代码:

<script>
var showText = function (target, message, index, interval) {   
  if (index < message.length) {
    $(target).append(message[index++]);
    setTimeout(function () { showText(target, message, index, interval); }, interval);
  }
}
var x = "Hello there stranger!"+"<br>"+"How are you?";
$(function () {

  showText("#msg", x, 0, 130);   

});
</script>

它将<br>标记输出为字符串,而不是添加折断线。请帮忙......

2 个答案:

答案 0 :(得分:1)

你的观点是:

 [jQuery.append][1]

而不是:

 [jQuery.html][2]

我建议你:

&#13;
&#13;
var showText = function (target, message, index, interval) {
  if (index < message.length) {
    // if special character: append the break element
    if (message[index] == '\n') {
      index++;
      $(target).append('<br/>');
    } else {
      // else: append text to the html
      $(target).html($(target).html() + message[index++]);
    }
    setTimeout(function () {
      showText(target, message, index, interval);
    }, interval);
  }
}

// use a special character instead of the break element
var x = "Hello there stranger!\nHow are you?";

$(function () {
  showText("#msg", x, 0, 130);
});
&#13;
<script src="https://code.jquery.com/jquery-1.12.1.min.js"></script>

<p id="msg"></p>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

也许parseHTML方法有帮助吗?

您可以在上面的代码中使用它,如下所示:

var messageStr = $.parseHTML( message[index++] );
$(target).append(messageStr);

parseHTML方法将字符串转换为DOM节点:https://api.jquery.com/jquery.parsehtml/