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

时间:2011-05-10 16:44:11

标签: javascript jquery ajax

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

 $(myHTML).filter('#someID').doStuff();

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

在某些情况下有效

$(myHTML).filter('title').text();

但是在尝试选择多个元素时它似乎不起作用。 例如,如果我尝试计算所有<div><a>代码,我会一直为零

alert($(myHTML).filter('a').length)

即使此示例中有75个<a>标记。

尝试获取所有<div>标记的计数时也是如此:上面的代码只返回零。

任何人都可以解释为什么会发生这种情况以及我可以采取哪些措施来解决这个问题?

1 个答案:

答案 0 :(得分:5)

Filter只返回过滤后的顶级元素,不会遍历子节点。改为使用find()。