jquery中查找和过滤的区别 [英] Difference between find and filter in jquery
问题描述
我正在从 wiki 页面获取数据.我正在使用 php
和 jquery
的组合来执行此操作.首先,我在 php
中使用 curl
来获取页面内容并回显内容.文件名是 content.php
:
I'm working on fetching data from wiki pages. I'm using a combination of php
and jquery
to do this. First I am using curl
in php
to fetch page contents and echoing the content. The filename is content.php
:
$url = $_GET['url'];
$url = trim($url," ");
$url = urldecode($url);
$url = str_replace(" ","%20",$url);
echo "<a class='urlmax'>".$_GET['title']."</a>";
echo crawl($url);
然后jQuery
用于查找匹配的元素.
Then jQuery
is used to find the matched elements.
$.get("content.php",{url:"http://en.wikipedia.org/w/index.php?action=render&title="+str_replace(" ","_",data[x]),title:str_replace(" ","_",data[x])},function(hdata){
var imgs = $(hdata).find('a.image img');
var ent = $(hdata).filter('a.urlmax');
ent = $(ent[0]).text();
});
我能够成功获取图像,但是对于变量 ent,当我使用 find 而不是 filter 时,它返回一个空数组.只有过滤器在工作.这是为什么呢?
I was able to successfully get images but for the variable ent when I use find instead of filter, it's returning an empty array. Only filter is working. Why is this?
我知道查找和过滤之间的基本区别.这里的 a.image img
和 a.urlmax
都是 hdata
的后代.那么为什么 find 在 a.urlmax
上不起作用.不是 a.urlmax
单独它不适用于任何其他类或 id
I know the basic difference between find and filter. Here both the a.image img
and a.urlmax
are descendats of the hdata
. Then why find does not work on a.urlmax
. Not a.urlmax
alone it's not working on any other class or id
推荐答案
.find()http://api.jquery.com/find/
获取当前匹配元素集合中每个元素的后代,由选择器、jQuery 对象或元素过滤.
Get the descendants of each element in the current set of matched elements, filtered by a selector, jQuery object, or element.
另一方面,过滤器作用于当前匹配的元素.这就是为什么 filter 有效但 find 无效(您需要查看当前元素).
Filter, on the other hand, works on the currently matched elements. That's why filter worked but find did not (you needed to look at the current element).
这篇关于jquery中查找和过滤的区别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!