是否有可能从不在DOM中的html字符串中获取jquery对象?

Tra*_*vis 9 html javascript jquery

例如,在页面上运行的javascript代码中,我们有类似的东西:

var data = '<html>\n  <body>\n  I want this text ...\n  </body>\n</html>';
Run Code Online (Sandbox Code Playgroud)

我想使用并且至少知道是否有可能在该html字符串的主体中获取文本而不将整个html字符串抛入DOM并从那里进行选择.

Ken*_*ler 8

首先,它是一个字符串:

var arbitrary = '<html><body>\nSomething<p>This</p>...</body></html>';
Run Code Online (Sandbox Code Playgroud)

现在的jQuery它变成未附着DOM片段,施加它的内部.clean()的方法来剥去等多余的东西<html>,<body>

var $frag = $( arbitrary );
Run Code Online (Sandbox Code Playgroud)

你可以用jQuery函数来操作它,即使它仍然是一个片段:

alert( $frag.filter('p').get() ); // says "<p>This</p>"
Run Code Online (Sandbox Code Playgroud)

或者当然只是得到你问题中的文字内容:

alert( $frag.text() ); // includes "This" in my contrived example
                       // along with line breaks and other text, etc
Run Code Online (Sandbox Code Playgroud)

您也可以稍后将片段附加到DOM:

$('div#something_real').append( $frag );
Run Code Online (Sandbox Code Playgroud)

在可能的情况下,在片段未连接时对片段进行复杂操作通常是一个很好的策略,然后在完成后将它们放入"真实"页面.