我发现 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 的错误还是功能?