Dizede yeni satırı (\ n) kullanma ve aynısını HTML'de oluşturma


88

Bir telim var

string display_txt = "1st line text" +"\n" + "2nd line text";

Jquery'de kullanmaya çalışıyorum

('#somediv').html(display_txt).css("color", "green")

oldukça açık bir şekilde mesajımın 2 satırda görüntülenmesini bekliyorum, bunun yerine mesajda \ n görüntüleniyor. Bunun için herhangi bir hızlı düzeltme var mı?

Teşekkürler,


1
Oldukça açık, cevap sorunuzda, div'deki hata mesajını html olarak oluşturmaya çalışıyorsunuz, böylece <br />etiketi kullanabilirsiniz
Murtaza

İki satır beklemede "oldukça net" hiçbir şey yok. Aksine, satırsonu satırının düz boşluk olarak sunulacağı, sadece gerektiğinde satırı kaydıracağı oldukça açıktır. HTML'nin nasıl çalıştığı, tabi ki aynı zamanda nasıl .htmlçalıştığıdır.

2
Sadece dizimi "1. satır metni" ve "2. satır metni" olarak sakladığım bağlamdan kastım, html'nin nasıl çalıştığına bakılmaksızın bunları 2 satırda istediğim açıktı :) teşekkür ederim.
KeenUser

Yanıtlar:


80

Html'de <br />yeni satır için kullanın :

display_txt = display_txt.replace(/\n/g, "<br />");

1
nedense, "\ n" 'den "\\ n" olarak kaçmalıyım yoksa işe yaramıyor. (Chrome 46'da test edilmiştir). Nedeni var mı?
Sujay Phadke

2
Lütfen bunun yalnızca \ndizedeki karakterin ilk geçtiği yerin yerini alacağını unutmayın . MDN belgelerine
Dominic Boulanger

3
en iyisi .replace(/\n/g, "<br />")daha fazla yeni satırı önlemektir.
KingRider

2
@ Vsync'in cevabının kabul edilmesi gerektiğini düşünüyorum.
Ayush Kumar

Mükemmel çalıştı. Teşekkür ederim.
joshlsullivan

178

Tablo hücresindeki css'nizi şu şekilde ayarlayın:

white-space:pre-wrap;

document.body.innerHTML = 'First line\nSecond line\nThird line';
body{ white-space:pre-wrap; }


6
bu yüzden kabul edilen cevap bu değil mi? LE: Bunun yalnızca IE 8+ bağlantısında
gciochina

4
Bu yanıt, bir XSS zafiyetine neden olmadığından, innerHTML'yi ayarlamaktan çok daha iyidir.
LinusK

4
Ayrıca, white-space:pre-line;boşluk dizilerinin tek bir boşlukta daralması için kullanabilirsiniz. Metin gerektiğinde ve satır sonlarında kaydırılır. Daha fazla bilgi için: https://www.w3schools.com/cssref/pr_text_white-space.asp
HakuteiJ

Bu cevap metin içinde \ n yeni satıra
dönüşmüyor

2
@ste_irl - ne demek istiyorsun? bu \n, yeni bir satırın yazdırılması gerektiği ve yazdırılacağı anlamına gelir
vsync

7

Bir div yerine bir ön etiket kullanabilirsiniz. Bu, otomatik olarak \ n'lerinizi doğru şekilde görüntüler.

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script>
$(document).ready(function(){
         var display_txt = "1st line text" +"\n" + "2nd line text";
         $('#somediv').html(display_txt).css("color", "green");
});
</script>
</head>
<body>

<pre>
<p id="somediv"></p>
</pre>

</body>
</html>

1

Belki .textyerine .html?


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.