Подтвердить что ты не робот

Разница между поиском и фильтром в jquery

Я работаю над извлечением данных из страниц вики. Для этого я использую комбинацию php и jquery. Сначала я использую curl в php для получения содержимого страницы и повторения содержимого. Имя файла 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 используется для поиска совпадающих элементов.

$.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 вместо фильтра, и возвращает пустой массив. Работает только фильтр. Почему это?

Изменение: я знаю основное различие между поиском и фильтром. Здесь оба a.image img и a.urlmax являются hdata. Тогда почему find не работает на a.urlmax. Не только a.urlmax он не работает ни на каком другом классе или в id

4b9b3361

Ответ 1

.find() http://api.jquery.com/find/

Получите потомки каждого элемента в текущем наборе согласованных элементов, отфильтрованных селектором, объектом jQuery или элементом.

Фильтр, с другой стороны, работает с элементами, согласованными в данный момент. Поэтому фильтр работал, но найти не удалось (вам нужно было посмотреть на текущий элемент).

Ответ 2

filter выберет подмножество элемента из выбранного элемента

find будет выбирать дочерние/дочерние элементы выбранного элемента

Чтобы сделать его более понятным, фильтр будет искать через весь элемент, тогда как find будет искать только в списке потомков