Ответ 1
Механизмы компоновки HTML сводят все пробелы к одному пространству. Конечно, вам нужен <br />
или какой-то другой механизм, который HTML использует для помещения вещей в отдельные строки.
Я просто написал простой код, и я заметил, что использование 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"
, но мне не нужно это делать?
Неужели я глуп?
Механизмы компоновки HTML сводят все пробелы к одному пространству. Конечно, вам нужен <br />
или какой-то другой механизм, который HTML использует для помещения вещей в отдельные строки.
document.writeln
делает следующее:
Записывает строку текста, за которой следует символ новой строки, в документ.
Но whitespace свертывается и преобразуется в одно пространство при рендеринге HTML, поэтому ваша новая строка ничего не делает внутри HTML.
Кажется, что все это на одной линии. Сделайте это -
document.write('<pre>');
document.writeln(myObject.firstName);
document.writeln(myObject.address[0].Address1);
и вы увидите.
document.writeln
будет писать строку в вашем документе, а не "строку" в вашем HTML. Ваш документ (исходный код) фактически будет содержать "\n", но разрыв строки не будет отображаться в HTML.
То, что вы выводите, является inperpreted как HTML, и вы должны выводить теги форматирования, чтобы заставить его выглядеть так, как вы хотите.
просмотрите источник страницы, чтобы увидеть, как браузер помещает каждую строку в строку,
но если вы хотите увидеть новую строку в html, да, поставьте '<br>'
между ними.
Я бы ожидал, что исходный код страницы будет иметь его в двух строках, но браузер будет конденсировать его в одну строку, поскольку он конденсирует все пробелы в одном пространстве. Поэтому в браузере он отображает его на одной строке.
Как вы сказали, вам нужно добавить элемент BR, чтобы он отображался на двух строках.
document.writeln()
добавляет \n
к каждой строке. Однако в HTML-пробеле все отображаются как одно пространство; вам нужно будет добавить теги <br>
или <p>
.
Чтобы использовать document.write() или document.writeln(), чтобы получить какой-либо тип списка или новые текстовые строки в документе HTML:
var somevar = "foo";
for(i=1;i<4;i++){
document.write(i+". "+somevar+"<br>");
}
Это выведет: