我不太明白为什么查找在这里表现:
var data = $("<html><title>hello</title><body><form><ul><li>here</li></ul></form></body><ul><li></li></ul></html>");
alert(data.find("form").length);
alert(data.find("ul").length);
我也为这个 -
提出了一个小问题答案 0 :(得分:2)
它找不到form
元素,因为它实际上是集合的根元素(它是body
元素的直接子元素)。如果您将其更改为.filter
,则会找到form
:
alert(data.filter("form").length); // 1
它没有找到第二个ul
元素,因为它在body
元素之外,这是无效的(jQuery将第二个ul
放在集合的根目录中 - 使用{ {1}}你也可以找到那个。)
jQuery从集合中删除filter
元素和html
元素。如果你记录集合的内容,它会更清楚地发生了什么:
[
body
,<title>hello</title>
,<form>…</form>
]
答案 1 :(得分:0)
您需要将each
添加到ul
搜索中。我还添加了James对该演示的回答。