2016-07-02 10 views
-1

可能なすべての方法を試しましたが、変数に格納された文字列の中にブレークラインを追加して特定の関数内で使用することはできません。"<br>"タグを付けた文字列を追加できません

HTMLコード:

<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>タグを出力します。助けてください...

答えて

1

あなたのポイントは次のとおりです:

[jQuery.append][1] 

代わりの

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

parseHTML方法は、DOMノードに文字列を変換し、 :

[jQuery.html][2] 

私はあなたを提案する:

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); 
 
});
<script src="https://code.jquery.com/jquery-1.12.1.min.js"></script> 
 

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

関連する問題