/ / Je možné vytvoriť prvky z html vráteného pomocou .html ()? - jQuery

Je možné vytvoriť prvky z html vráteného .html ()? - jquery

Očakával, že nasledujúce jQuery vytvorí uzly z html:

var nodes = $( "<li>ABC</li><li>DEF</li>" );

Teraz zvážte nasledujúci html:

        <ul class="foo">
<li>ABC</li>
<li>DEF</li>
</ul>

Moja otázka, prečo nasledujúci postup vracia namiesto uzlov chybovú správu?

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

Chybové hlásenie je:

Uncaught Error: Syntax error, unrecognized expression: <li>ABC</li>
<li>DEF</li>

Môžete ju vidieť v akcii tu http://jsfiddle.net/HDk47/

odpovede:

4 pre odpoveď č. 1

Analýza juristiky jQuery nepáči vedúcu medzeru v systéme Windows html.

Odstránenie medzier odstráni problém:

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

Aktualizované husle.

Aktualizácia: Felix Kling vykopali na odkaz na dokumentáciu predtým, ako som bol schopný.


0 pre odpoveď č. 2

S odkazom na http://jquery.com/upgrade-guide/1.9/#jquery-htmlstring-versus-jquery-selectorstring„Od 1.9 sa reťazec považuje za HTML, iba ak začína znakom menším ako („ <“).“

var html = $( "ul.foo" ).html();
html = html.replace(/^[ rnt]+/g,"");//remove leading whitespace
var nodes = $(html);

-3 pre odpoveď č. 3

Chyba je tu:

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

Radšej to urobte takto:

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

Otestoval som to a funguje to