Chcę móc powiedzieć
$(someElem).text('this\n has\n newlines);
i renderuje się z nowymi wierszami w przeglądarce. Jedynym rozwiązaniem, jakie znalazłem, jest ustawienie właściwości css „white-space” na „pre” w someElem. To prawie działa, ale mam irytująco duże wypełnienie między tekstem a górną częścią jakiegośElem, nawet jeśli ustawię dopełnienie na 0. Czy jest sposób, aby się tego pozbyć?
javascript
jquery
html
Joe Armstrong
źródło
źródło
<pre>
znaczniki (i używanie .html () zamiast .text ()) jest najłatwiejszym i najlepszym sposobem na zachowanie podziałów wierszy z pliku tekstowego lub ze zwykłego tekstu (sugeruje to poniższa odpowiedź Karima). JEDNAK: Nowszą alternatywą jest użyciewhite-space: pre-wrap;
zgodnie z sugestią w odpowiedziappend()
zamiasttest()
i<br/>
zamiast\n
? w ten sposób -$(someElem).append("this <br/> has <br/> newlines");
Odpowiedzi:
Jest rok 2015. Poprawną odpowiedzią na to pytanie w tym momencie jest użycie CSS
white-space: pre-line
lubwhite-space: pre-wrap
. Czysty i elegancki. Najniższa wersja IE obsługująca tę parę to 8.https://css-tricks.com/almanac/properties/w/whitespace/
PS
Dopóki CSS3 nie stanie się powszechny, prawdopodobnie będziesz musiał ręcznie usuwać początkowe i / lub końcowe odstępy.źródło
new Date("2016");
Jeśli przechowujesz obiekt jQuery w zmiennej, możesz to zrobić:
Jeśli wolisz, możesz również utworzyć funkcję wykonującą to za pomocą prostego wywołania, tak jak robi to jQuery.text ():
źródło
Oto czego używam:
źródło
text.split(/\\n/)
, a nawettext.split(/\\\\n|\\n|\n/)
. Napotkałem to podczas przekazywania tekstu w formacie JSON z interfejsem API, który osadził literalne\n
znaki kontrolne w ciągach.Alternatywnie spróbuj użyć,
.html
a następnie zawiń w<pre>
tagi:źródło
Można użyć
html
zamiasttext
i zastąpić każde wystąpienie\n
z<br>
. Będziesz jednak musiał poprawnie uciec przed tekstem.źródło
text
podczas gdy ta odpowiedź jest używanahtml
bezpośrednio.Sugerowałbym pracę
someElem
bezpośrednio z elementem, ponieważ zastąpienie go.html()
zastąpiłoby również inne znaczniki HTML w ciągu.Oto moja funkcja:
Nazwij to:
źródło
Spróbuj tego:
źródło
Korzystanie z właściwości odstępu CSS jest prawdopodobnie najlepszym rozwiązaniem. Użyj Firebug lub Chrome Developer Tools, aby zidentyfikować źródło dodatkowego wypełnienia, które widziałeś.
źródło