2012-05-01 80 views
2

我使用jQuery動態填充一些級聯下拉控件時,頁面加載。但是,當頁面加載時,我的三個選擇框中只有兩個被識別。爲什麼DOM中不顯示多個HTML選擇標記?

考慮下面的HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html 
xmlns="http://www.w3.org/1999/xhtml"> <head> 
    <title></title> </head> <body> 
    <select id="one" /> 
    <select id="two" /> 
    <select id="three" /> </body> </html> 

當我在IE,火狐或Chrome打開此頁面,只有兩個選擇框被渲染。 DOM中只有兩種出現(使用螢火蟲或類似物),但所有三種都出現在源代碼中。

我能做些什麼,讓所有的控件顯示出來?

+0

哪兩個三個的顯示? – Tim

+0

這裏是一個的jsfiddle例如:http://jsfiddle.net/SWJ42/ –

+0

感謝的jsfiddle例子。漂亮的工具! – SpazDude

回答

5

簡單:編寫有效的HTML代碼。瀏覽器正在盡力解析無效的HTML,但有時他們會扼殺它。

<select>不是自動關閉標籤,它必須有一個結束標籤和至少一個optionoptgroup元素。

<select id="one"><option></option></select> 
<select id="two"><option></option></select> 
<select id="three"><option></option></select> 

jsFiddle Demo

+0

所有元素都可以用XHTML中的自閉句法表示(除非它們具有必需的子元素,它們會選擇這些元素)。它只是不兼容HTML。 – Quentin

+0

@Quentin查看本頁的源代碼:http://www.webdevout.net/articles/beware-of-xhtml-examples/6.html 它說它是有效的XHTML,它有XHTML文檔類型,但它呈現錯誤。 – gcochard

+0

@Greg - 是嗎?這證明了我說的話。有效但不兼容HTML。 – Quentin

6

validHTML-compatible標記。

你選擇的元素應該有明確的結束標記和至少一個選項元素。

<select id="one"><option>foo</option></select> 
<select id="two"><option>foo</option></select> 
<select id="three"><option>foo</option></select> 
相關問題