我想使用jQuery解析主页HTML,如下所示.当我使用文档时它正在工作.但是在使用字符串时不起作用.
输出: null
var str = "<html><title>This is Title</title><body><p>This is a content</p><p class='test'>Test content</p></body></html>";
$str = $(document); // working
$str = $(str); // not working
alert($str.find(".test").html());
Run Code Online (Sandbox Code Playgroud)
另一种方法(也失败):
输出: null
var str = "<html><title>This is Title</title><body><p>This is a content</p><p class='test'>Test content</p></body></html>";
alert($('.test',str).html());
Run Code Online (Sandbox Code Playgroud)
我得到的字符串也不能解析为XML,因为它不是有效的XHTML.
jQuery的可以将HTML片段插入DOM元素的树,但它只做与内容元素,不html,title,head,等,只有你的东西就放里面 body.所以这可能会导致一些麻烦.
该find函数查找与给定选择器匹配的后代元素.因此,即使jQuery实例中的任何顶级元素与选择器匹配,也无法找到它们find.例如:
$('<p class="foo">foo</p>').find('.foo').length; // 0 -- none found
Run Code Online (Sandbox Code Playgroud)
...因为匹配元素不是后代.要查找匹配的顶级元素,请使用filter:
var str = "<p>This is a content</p><p class='test'>Test content</p>";
$(str).find('.test').length; // 0 -- no *descendants* found that match
$(str).filter('.test').length; // 1 -- there was one top-level element that matched
Run Code Online (Sandbox Code Playgroud)
另一种方法是把所有的元素在一个容器,像一个div,使用前find:
var str = "<div><p>This is a content</p><p class='test'>Test content</p></div>";
$(str).find('.test').length; // 1 -- it was found
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2878 次 |
| 最近记录: |