Saya ingin bisa mengatakan
$(someElem).text('this\n has\n newlines);
dan merender dengan baris baru di browser. Satu-satunya solusi yang saya temukan adalah menyetel properti css 'white-space' menjadi 'pre' on someElem. Ini hampir berhasil, tetapi kemudian saya memiliki padding yang sangat besar antara teks dan bagian atas beberapaElem, bahkan ketika saya menyetel padding ke 0. Apakah ada cara untuk menghilangkan ini?
javascript
jquery
html
Joe Armstrong
sumber
sumber
<pre>
tag (dan menggunakan .html () daripada .text ()) adalah solusi termudah dan terbaik untuk mempertahankan jeda baris dari file teks atau dari teks biasa menurut pendapat saya (ini disarankan oleh jawaban Karim di bawah). NAMUN: Alternatif yang lebih baru untuk ini adalah dengan menggunakanwhite-space: pre-wrap;
seperti yang disarankan dalam jawabanappend()
sebagai gantinyatest()
dan<br/>
sebagai gantinya\n
? seperti ini -$(someElem).append("this <br/> has <br/> newlines");
Jawaban:
Ini tahun 2015. Jawaban yang benar untuk pertanyaan ini pada saat ini adalah menggunakan CSS
white-space: pre-line
atauwhite-space: pre-wrap
. Bersih dan elegan. Versi IE terendah yang mendukung pasangan ini adalah 8.https://css-tricks.com/almanac/properties/w/whitespace/
PS
Sampai CSS3 menjadi umum,Anda mungkin perlu memangkas spasi awal dan / atau akhiran secara manual.sumber
new Date("2016");
Jika Anda menyimpan objek jQuery dalam variabel, Anda dapat melakukan ini:
Jika mau, Anda juga dapat membuat fungsi untuk melakukan ini dengan panggilan sederhana, seperti yang dilakukan jQuery.text ():
sumber
Inilah yang saya gunakan:
sumber
text.split(/\\n/)
, atau bahkantext.split(/\\\\n|\\n|\n/)
. Saya mengalami ini saat membagikan teks dalam format JSON dengan API yang menyematkan\n
karakter kontrol literal dalam string.Atau, coba gunakan
.html
lalu bungkus dengan<pre>
tag:sumber
Anda dapat menggunakan
html
sebagaitext
ganti dan mengganti setiap kemunculan\n
dengan<br>
. Anda harus benar-benar keluar dari teks Anda.sumber
text
sementara jawaban ini digunakanhtml
secara langsung.Saya akan menyarankan untuk bekerja dengan
someElem
elemen secara langsung, karena penggantian dengan.html()
akan menggantikan tag HTML lain di dalam string juga.Inilah fungsi saya:
Sebut dengan:
sumber
Coba ini:
sumber
Menggunakan properti ruang putih CSS mungkin merupakan solusi terbaik. Gunakan Firebug atau Alat Pengembang Chrome untuk mengidentifikasi sumber padding ekstra yang Anda lihat.
sumber