2014-01-25 68 views
0

這是我的第一個問題的第二部分: https://stackoverflow.com/questions/21352305/jquery-html-method-tags-auto-closure-issue-void-tags?noredirect=1#comment32194709_21352305 如果我使用:虛空標籤封閉包裝的問題

var xml='<parameter name="lg2CacheSize" description="Vex cache size" type="integer" min="12" max="12"/><parameter name="lg2CacheSize" description="Vex cache size" type="integer" min="12" max="12"/>' 
$("#dummydiv").html(xml); 

爲什麼在瀏覽器裏面包裹彼此的元素?

所以不是像解析

<parameter></parameter> 
<parameter></parameter> 

它解析像

<parameter><parameter></parameter></parameter> 

如何能在第一時間被解析爲?

http://fiddle.jshell.net/h6dLK/3/,檢查黑色Div觀看dom樹。

回答

2

它試圖將XML解析爲(無效的)HTML,其中<foo />的含義是「起始標記尾隨/」而不是「空元素標記」。

它在最後添加了結束標籤,因爲它已經到了字符串的末尾,並且還打開了兩個打開的元素。如果您想解析XML,請使用DOMParser。不要試圖像HTML那樣對待它。

+0

是的問題是,它是否應該單獨結束每個獨立標記,而不是將它們包裹在對方內? – ProllyGeek

+0

@ProllyGeek - 沒有。它無法知道缺失的結束標籤應該在哪裏,所以它把它們放在第一個必須的地方。 – Quentin

+0

所以我應該如何改革我的XML所以它可以被解析像'' – ProllyGeek