jQuery:.filter()返回的元素少于预期?

jak*_*ake 2 javascript ajax jquery

我正在使用PHP和ajax命令来获取外部网页的整个HTML内容(通过PHP file_get_contents()命令)并将该HTML传递到javascript变量中.使用该变量中的HTML内容,我现在尝试选择并提取该变量中的某些元素.我尝试使用这个.filter()功能,例如

 $(myHTML).filter('#someID').doStuff();
Run Code Online (Sandbox Code Playgroud)

但该.filter()命令似乎没有准确过滤我的选择.

它适用于某些情况

$(myHTML).filter('title').text();
Run Code Online (Sandbox Code Playgroud)

但是在尝试选择多个元素时它似乎不起作用.例如,如果我尝试计算所有<div><a>标签的数量,我会一直变为零

alert($(myHTML).filter('a').length)
Run Code Online (Sandbox Code Playgroud)

即使<a>这个例子中有75个标签.

尝试计算所有<div>标记时也会发生同样的情况:上面的代码只返回零.

任何人都可以解释为什么会这样,以及我可以做些什么来解决这个问题?

Dar*_*JDG 5

过滤器只会返回过滤后的顶级元素,不会遍历子级.请改用find().

  • 新jQuery编码器的常见问题,[`.find()`](http://api.jquery.com/find/),[`.filter()`](http://api.jquery)之间的区别.com/filter /)和[`.children()`](http://api.jquery.com/children/). (4认同)