2015-12-31 4 views
1

Каков наилучший способ добавить разрыв строки после каждого окна.document.writeln?Как добавить разрыв строки после каждого window.document.writeln

Я думал, используя .writeln, в отличие от .write, сделал бы трюк, но это только добавило пробел.

for (var fizzCount = 1; fizzCount<=100; ++fizzCount) { 
    if (fizzCount % 3 == 0) 
     window.document.writeln("Fizz"); 
    else if (fizzCount % 5 == 0) 
     window.document.writeln("Buzz"); 
    else if (fizzCount % 15 == 0) 
     window.document.writeln("FizzBuzz"); 
    else 
     window.document.writeln(fizzCount); 
} 

https://jsfiddle.net/eyLarL23/1/

Спасибо за помощь!

+0

Является ли это Codecademy упражнение? –

+0

Включите ваш фрагмент с помощью предварительного тега. проверьте мой ответ –

+0

@Jenny Помогает ли мой ответ? Если да, примите. Else, обратная связь пожалуйста? –

ответ

3

Я помню это Codecademy lesson ☺.

Просто добавьте

+ "<br />" 

к каждому из ваших writeln() заявлений.

Ваш код не работает, потому что writeln() создает разрыв строки \n вместо <br />, поэтому он не представлен как разрыв строки.

Например:

for (var fizzCount = 1; fizzCount<=100; ++fizzCount) { 
if (fizzCount % 3 == 0) 
window.document.writeln("Fizz<br />"); 
else if (fizzCount % 5 == 0) 
window.document.writeln("Buzz<br />"); 
else if (fizzCount % 15 == 0) 
window.document.writeln("FizzBuzz<br />"); 

См обновленный JSFiddle.

Extra Подсказка 1

Кроме того, так как вы уже используете JQuery, вы можете упростить window.document.writeln() заявления коротких заявлений Jquery так:

var d = $("body"); 
for (var fizzCount = 1; fizzCount<=100; ++fizzCount) 
    if (fizzCount % 3 == 0) 
     d.append("Fizz<br />"); 
    else if (fizzCount % 5 == 0) 
     d.append("Buzz<br />"); 
    else if (fizzCount % 15 == 0) 
     d.append("FizzBuzz<br />"); 

Extra Tip 2

Ваш код не распечатывает «FizzBuzz» в кратных 15: вместо этого он печатает только «Fizz», потому что он встречает if(fizzCount % 3 == 0) заявление первым. Чтобы исправить это, сначала поставьте оператор if(fizzCount % 15 == 0), чтобы он сначала его проверял.

Поэтому окончательный (рабочий) код будет:

var d = $("body"); 
for (var fizzCount = 1; fizzCount<=100; ++fizzCount) 
    if (fizzCount % 15 == 0) 
     d.append("FizzBuzz<br />"); 
    else if (fizzCount % 3 == 0) 
     d.append("Fizz<br />"); 
    else if (fizzCount % 5 == 0) 
     d.append("Buzz<br />"); 
    else 
     d.append(fizzCount + "<br />"); 

См пример работы на JSFiddle.

+0

Мы можем избежать тега break, если мы заключим с pre tag! –

0

document.writeln уже добавляет разрыв строки. Вы не видите этого, потому что поведение по умолчанию заключается в проглатывании/coallesce пробелов.

Если вы просматриваете сгенерированный исходный код страницы, на этом текстовом узле будет новая строка.

Если вы хотите увидеть строку на странице, используйте тег бр

window.document.writeln("Fizz" + "<br />"); 
1

заключите с <pre> Tag. вы увидите реальное поведение.

document.write('<pre>'); 
 
    for (var fizzCount = 1; fizzCount<=100; ++fizzCount) { 
 
     if (fizzCount % 3 == 0) 
 
      window.document.writeln("Fizz"); 
 
     else if (fizzCount % 5 == 0) 
 
      window.document.writeln("Buzz"); 
 
     else if (fizzCount % 15 == 0) 
 
      window.document.writeln("FizzBuzz"); 
 
     else 
 
      window.document.writeln(fizzCount); 
 
    }; 
 
    document.write('</pre>');

Fiddle URL:
https://jsfiddle.net/eyLarL23/3/

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