2016-05-20 5 views
0

EDIT resolvedПочему моя n новая строка не работает?

Интересно, почему следующий код не работает - нет новой строки «произведено» У кого-нибудь есть идея? Благодаря

$('#results').append("Try again! \n I believe in you"); 
+0

Возможный дубликат: http://stackoverflow.com/questions/1155678/javascript-string-newline-character?rq=1 –

+0

Возможная Дубликат [Предоставление новых строк в сбежавшего HTML] (http://stackoverflow.com/ вопросы/12694110/rendering-newlines-in-escaped-html) –

+0

Если это было решено, тогда вы должны выбрать ответ, а не просто отредактировать исходный вопрос. – njfife

ответ

2

Это в HTML, вам нужно использовать переносы строк, <br>, а не переводы строк.

+0

'\ n' будет работать нормально, если вы используете'

', или если вы используйте 'white-space: pre' в CSS Вы также можете использовать 'white-space: pre-line', чтобы игнорировать пробелы, которые не являются типом новой строки, например' \ n' –
                        
                            
    njfife
                                
                            
                        
                    

3

Белые пространства не разбиваются на html, они сворачиваются в одно отображаемое пробелы, отображаемое как . Если вы хотите сделать перерыв в HTML, вы должны использовать перерыв тег <br>

$('#results').append("Try again! <br> I believe in you");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="results"></div>

+0

Спасибо! Теперь! – learningcoding

+0

Вы должны выбрать ответ btw, если это было нужное вам решение, это будет тот, который вы должны выбрать. Если бы это был другой, тогда вы должны перенести его и пометить как правильное. – njfife

2

Я предполагаю, что вы делаете вызов AJAX или что-то и результаты содержат «\ п 'и вы не можете его изменить?

Это хорошо, в HTML-файлах, таких как \ n и пробелы, игнорируются, если вы явно не заявляете, что хотите использовать пробелы.

Существует два основных способа сделать это.

первых, с <pre> тегом

$(function() { 
 
    $('#results').append("Try again! \n I believe in you"); 
 
})
<html> 
 
    <head> 
 
    <script data-require="[email protected]*" data-semver="2.2.0" src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> 
 
    </head> 
 

 
    <body> 
 
    <pre id="results"></pre> 
 
    </body> 
 
</html>

Второй (лучший способ) это с помощью CSS, используя white-space

В следующем примере я использую white-space:pre-line этом сохранит только ваши \ n или новые строки

$(function() { 
 
    $('#results').append("Try again! \n I believe in you"); 
 
})
<html> 
 
    <head> 
 
    <script data-require="[email protected]*" data-semver="2.2.0" src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> 
 
    </head> 
 

 
    <body> 
 
    <div style = "white-space: pre-line" id="results"></div> 
 
    </body> 
 
</html>

Обратите внимание, что второй один использует стандартный <div>, запускает новую линию и не сохраняет лишние пробелы после \ п? Это может быть больше того, что вы ищете. Вы также можете установить его на white-space:pre, а div должен вести себя как <pre></pre> с точки зрения пробела и новых линий.

white-space имеет много вариантов:

белого пространства: нормальная | Nowrap | до | до линии | предварительно обертывание | начальный | унаследует;

Это должно предоставить вам то, что вам нужно.

Возможно, вам придется использовать Javascript для дезинфекции текста, если вы ищете очень конкретный формат.

Есть другие способы получить перерывы в тексте, но если вы специально используете \n, то это единственные два способа, которые я знаю, чтобы сделать это.

Надеюсь, это поможет!

Смежные вопросы