我發現jQuery並不總是從HTML字符串創建正確的DOM。這裏是一個小例子代碼:jQuery從HTML字符串生成不正確的DOM
var x = "<div><p><ul><li>1</li></ul></p></div>";
console.log('x = ' + x);
console.log('jQuery(x) = ' + jQuery(x).html());
var y = "<div><div><ul><li>1</li></ul></div></div>";
console.log('y = ' + y);
console.log('jQuery(y) = ' + jQuery(y).html());
這裏是我得到的jQuery 1.7.1運行這個輸出:
x = <div><p><ul><li>1</li></ul></p></div>
jQuery(x) = <p></p><ul><li>1</li></ul><p></p>
y = <div><div><ul><li>1</li></ul></div></div>
jQuery(y) = <div><ul><li>1</li></ul></div>
正如你所看到的,第二個示例創建正確的DOM,第一例子沒有。唯一的區別是<p>
標籤,而不是<div>
。這是jQuery的錯誤或功能?
您在指定無效的html。這是輸入不正確,不是輸出。您在結果中看到的html是自動更正的html。 – Nope
@downvoter:真的嗎?這是一個很好的問題。 Upvoting抵消。 –