Подтвердить что ты не робот

Document.writeln не пишет в новую строку

Я просто написал простой код, и я заметил, что использование document.writeln не пишет в новую строку, разрешите мне продемонстрировать...

    // this is my JSON object
var myObject = {
 "firstName": "John",
 "lastName": "Smith",
 "age": 25,
 "address": [{
    "Address1": "11 My Street",
    "Address2" : "Nice Area",
    "Town" : "Nice Town",
    "PCode" : "P05T 0DE"
    }]
 }

document.writeln(myObject.firstName);
document.writeln(myObject.address[0].Address1);

теперь это выводит следующее....

Джон 11 Моя улица

Все на одной линии? Если бы я использовал document.write(), я бы ожидал этого? Это происходит как в IE, так и в Firefox. Очевидно, я мог бы добавить + "<br/>" или + "\n", но мне не нужно это делать?

Неужели я глуп?

4b9b3361

Ответ 1

Механизмы компоновки HTML сводят все пробелы к одному пространству. Конечно, вам нужен <br /> или какой-то другой механизм, который HTML использует для помещения вещей в отдельные строки.

Ответ 2

document.writeln делает следующее:

Записывает строку текста, за которой следует символ новой строки, в документ.

Но whitespace свертывается и преобразуется в одно пространство при рендеринге HTML, поэтому ваша новая строка ничего не делает внутри HTML.

Ответ 3

Кажется, что все это на одной линии. Сделайте это -

document.write('<pre>');
document.writeln(myObject.firstName);
document.writeln(myObject.address[0].Address1);

и вы увидите.

Ответ 4

document.writeln будет писать строку в вашем документе, а не "строку" в вашем HTML. Ваш документ (исходный код) фактически будет содержать "\n", но разрыв строки не будет отображаться в HTML.

Ответ 5

То, что вы выводите, является inperpreted как HTML, и вы должны выводить теги форматирования, чтобы заставить его выглядеть так, как вы хотите.

Ответ 6

просмотрите источник страницы, чтобы увидеть, как браузер помещает каждую строку в строку, но если вы хотите увидеть новую строку в html, да, поставьте '<br>' между ними.

Ответ 7

Я бы ожидал, что исходный код страницы будет иметь его в двух строках, но браузер будет конденсировать его в одну строку, поскольку он конденсирует все пробелы в одном пространстве. Поэтому в браузере он отображает его на одной строке.

Как вы сказали, вам нужно добавить элемент BR, чтобы он отображался на двух строках.

Ответ 8

document.writeln() добавляет \n к каждой строке. Однако в HTML-пробеле все отображаются как одно пространство; вам нужно будет добавить теги <br> или <p>.

Ответ 9

Чтобы использовать document.write() или document.writeln(), чтобы получить какой-либо тип списка или новые текстовые строки в документе HTML:

    var somevar = "foo";
    for(i=1;i<4;i++){
    document.write(i+". "+somevar+"<br>");
    }

Это выведет:

  • Foo
  • Foo
  • Foo