5

予想どおり、次の 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/

4

3 に答える 3

0

http://jquery.com/upgrade-guide/1.9/#jquery-htmlstring-versus-jquery-selectorstringを参照すると、「1.9 の時点では、文字列は以下で始まる場合にのみ HTML と見なされます ( "<") 文字。"

var html = $( "ul.foo" ).html();
html = html.replace(/^[ \r\n\t]+/g,'');//remove leading whitespace
var nodes = $(html);
于 2013-06-12T13:15:23.350 に答える
-3

間違いはここにあります:

var html = $( "ul.foo" ).html();
var nodes = $( html );

むしろ次のようにします。

var html = $( "ul.foo" ).html();
var nodes = $( html );

私はそれをテストし、それは動作します

于 2013-06-12T13:18:13.470 に答える