正如预期的那样,以下 jQuery 将从 html 创建节点:
var nodes = $( "<li>ABC</li><li>DEF</li>" );
现在,考虑以下 html:
<ul class="foo">
<li>ABC</li>
<li>DEF</li>
</ul>
我的问题,为什么以下返回错误消息而不是节点?
var html = $( "ul.foo" ).html();
var nodes = $( html );
错误消息是:
Uncaught Error: Syntax error, unrecognized expression: <li>ABC</li>
<li>DEF</li>
您可以在此处查看它的实际效果 http://jsfiddle.net/HDk47/
请您参考如下方法:
jQuery 的解析启发式不喜欢 html 中的前导空格。
删除空格可以解决问题:
var html = $.trim( $( "ul.foo" ).html() );
<强> Updated fiddle 。 强>
更新:菲利克斯·克林 dug up documentation reference早在我能够做到之前。
