2013-08-06 3 views
13

Ich habe den folgenden Code:Wie zeige ich eine neue Zeile in .text() in jQuery an?

var stringDisplay = "Hello\nWorld"; 
$("#meaning").text(stringDisplay); 

Es ist \n statt eine neue Zeile angezeigt wird.

Der Ausgang wird als Hello\nWorld angezeigt.

Ich verwendete <br> Tag auch anstelle von \n, aber es funktioniert immer noch nicht.

+0

var stringDisplay = "Hallo
Welt"; $ ("# Bedeutung") .html (stringDisplay); – andrewb

Antwort

24

Sie werden sowohl .html() verwenden und die Neue-Zeile ersetzen:

var escaped = $('<div>').text(stringDisplay).text(); 
$('#meaning').html(escaped.replace(/\n/g, '<br />')); 

Eine Alternative wäre, das Element stylen:

white-space: pre-wrap; 
+0

Diese Antwort ist nicht vollständig. Sie müssen den Text zuerst festlegen, um jeden HTML-Code, der sich im Text befindet, ordnungsgemäß zu entfernen. Nur dann können Sie den Zeilenaustausch durchführen (vorausgesetzt, die neue Zeile ist noch vorhanden). – Brad

+0

@Brad: Danke, behoben. – Blender

+0

$ ('# Bedeutung') .html (Escape.replace (/ \ n/g, '
')); gearbeitet .. vielen Dank – User4678

7

Wie über diese

$('meaning').html('line1<br>line2'); 
+0

Wäre schmerzhaft, wenn Zeile1 oder Zeile2 Benutzereingabe ist –