我发现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());
Run Code Online (Sandbox Code Playgroud)
这是我用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>
Run Code Online (Sandbox Code Playgroud)
如您所见,第二个示例创建了正确的DOM,第一个示例没有.唯一的区别是<p>标签而不是标签<div>.这是jQuery的错误或功能吗?