2011-04-26 73 views
13

我只是寫一些簡單的代碼,我發現,使用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()我期望這個?它發生在IEFirefox中。很明顯,我可以添加+ "<br/>"+ "\n"但我不需要那樣做?

我是不是很愚蠢?

回答

14

HTML佈局引擎將所有空白符合到一個空格中。 當然你需要<br />或HTML用於將東西放在不同行上的其他一些機制。

2

document.writeln會寫一行文檔中,而不是在你的HTML「線」 。您的文檔(源代碼)實際上將包含「\ n」,但換行符不會出現在HTML中。

1

你輸出的內容被解釋爲HTML,你必須輸出格式化標籤才能讓它看起來像你想要的樣子。

1

查看頁面的源代碼,查看瀏覽器如何將每行放在一行上,但如果您希望在html中看到換行符,請在它們之間放置一個'<br>'

9

document.writeln做到這一點:

寫入文本後跟一個換行符到文檔的字符串。

但是,在呈現HTML時,空格被摺疊並轉換爲單個空格,因此您的換行符在HTML內不做任何操作。

1

我希望頁面的源代碼可以在兩行上顯示,但瀏覽器會將它濃縮爲一行,因爲它會將所有空白濃縮爲一個空格。所以在瀏覽器中,它顯示在一行上。

正如您所說,您需要添加一個BR元素以使其顯示在兩行上。

1

document.writeln()確實向每行添加\n。但是,在HTML中,空格全部顯示爲單個空格;你需要自己添加<br><p>標籤。

3

它似乎只在一行上。這樣做 -

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

你會看到。

+0

我在Chrome瀏覽器的頁面打印子部分遇到問題。這使得html在預覽中顯示。不知道爲什麼,但它的工作。 – 2014-08-28 18:18:11

0

使用document.write()或文檔。writeln()獲得一個HTML文檔中的某些類型的列表或新的文本行:

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

這將輸出:

+2

爲什麼你在回答一年前提出的已被接受的答案? – webnoob 2013-01-08 16:19:51