2013-08-06 11 views
13

Mam następujący kod:Jak wyświetlić nową linię w .text() w jQuery?

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

Jest wyświetlania \n zamiast nowej linii.

Dane wyjściowe są wyświetlane jako Hello\nWorld.

Użyłem też tagu <br> również w miejsce \n, ale nadal nie działa.

+0

var stringDisplay = "Hello
Świat"; $ ("# znaczenie"). html (stringDisplay); – andrewb

Odpowiedz

24

Będziesz musiał użyć zarówno .html() i zastąpić nową linię:

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

Alternatywą byłoby projektować element:

white-space: pre-wrap; 
+0

Ta odpowiedź nie jest kompletna. Najpierw musisz ustawić tekst, aby właściwie uciec przed wszelkim HTML, który jest w tekście. Tylko wtedy możesz dokonać wymiany linii (zakładając, że nowa linia nadal tam jest). – Brad

+0

@Brad: Dzięki, naprawione. – Blender

+0

$ ("# znaczenie"). Html (escaped.replace (/ \ n/g, '
')); działało .. bardzo dziękuję – User4678

7

Jak o tym

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

Byłoby bolesne, jeśli linia 1 lub linia 2 jest wprowadzana przez użytkownika –

Powiązane problemy