2012-04-30 44 views
17

Tôi đang tìm nạp dữ liệu từ các trang wiki. Tôi đang sử dụng kết hợp của phpjquery để thực hiện việc này. Trước tiên, tôi đang sử dụng curl trong php để tìm nạp nội dung trang và lặp lại nội dung. Tên tệp là content.php:Sự khác biệt giữa tìm và lọc trong jquery

$url = $_GET['url']; 
$url = trim($url," "); 
$url = urldecode($url); 
$url = str_replace(" ","%20",$url); 

echo "<a class='urlmax'>".$_GET['title']."</a>"; 
echo crawl($url); 

Sau đó, jQuery được sử dụng để tìm các yếu tố phù hợp.

$.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(); 


}); 

Tôi đã có thể nhận được hình ảnh thành công nhưng đối với biến thay đổi khi tôi sử dụng tìm thay vì bộ lọc, nó trả về một mảng trống. Chỉ bộ lọc mới hoạt động. Tại sao điều này?

Chỉnh sửa: Tôi biết sự khác biệt cơ bản giữa tìm kiếm và bộ lọc. Ở đây cả hai số a.image imga.urlmax là hậu duệ của số hdata. Sau đó, tại sao tìm thấy không hoạt động trên a.urlmax. Không a.urlmax một mình nó không làm việc trên bất kỳ lớp khác hoặc id

+0

bản sao có thể có của [Sự khác biệt giữa tìm kiếm và bộ lọc] (http://stackoverflow.com/questions/2438223/difference-between-find-and-filter) – depa

Trả lời

15

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

Lấy con cháu của mỗi phần tử trong tập hợp các phần tử phù hợp hiện tại, được lọc bởi bộ chọn, đối tượng jQuery hoặc phần tử.

Bộ lọc, mặt khác, hoạt động trên các phần tử hiện đã khớp. Đó là lý do tại sao bộ lọc hoạt động nhưng không tìm thấy (bạn cần xem xét phần tử hiện tại).

11

filter sẽ lựa chọn tập hợp con của phần tử từ thành phần được chọn

find sẽ chọn hậu duệ/trẻ em của nguyên tố chọn

Để làm cho nó lọc rõ ràng hơn sẽ tìm kiếm thông qua tất cả các yếu tố trong khi tìm sẽ tìm kiếm chỉ trong danh sách hậu duệ

Các vấn đề liên quan