Difference between find and filter in jquery
find, jquery, web-crawler
Solution
.find() http://api.jquery.com/find/
Get the descendants of each element in the current set of matched elements, filtered by a selector, jQuery object, or element.
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).
Problem
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); ``` 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(); }); ``` 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? Edit: 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