28

私はwikiページからデータを取得することに取り組んでいます。私はこれを行うために と の組み合わせを使用しphpjqueryいます。最初に、in を使用curlphpてページ コンテンツを取得し、コンテンツをエコーし​​ています。ファイル名は次の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 に対して空の配列が返されます。フィルターのみが機能しています。どうしてこれなの?

編集:検索とフィルターの基本的な違いを知っています。ここでは、a.image imgとの両方a.urlmaxが の子孫ですhdata。次に、なぜfindが機能しないのですかa.urlmax。それa.urlmaxだけでなく、他のクラスやIDでも機能していません

4

3 に答える 3

31

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

セレクター、jQuery オブジェクト、または要素によってフィルター処理された、一致する要素の現在のセット内の各要素の子孫を取得します。

一方、フィルターは、現在一致している要素に対して機能します。そのため、filter は機能しましたが、find は機能しませんでした (現在の要素を確認する必要がありました)。

于 2012-04-30T05:12:40.777 に答える
22

filter選択した要素から要素のサブセットを選択します

find選択した要素の子孫/子を選択します

より明確にするために、フィルターはすべての要素を検索しますが、検索は子孫リストのみを検索します

于 2012-04-30T05:12:40.457 に答える
3

。探す()

選択した要素の子孫要素を返します。

例 ( jsfiddle ):

    <style>
      .Cell{
         margin: 15px;
         width: 400px;
         border: 2px solid lightgrey;
    
      }
      .Cell * {
         display: block;
         border: 2px solid lightgrey;
         color: lightgrey;
         padding: 5px;
         margin: 10px;
    }
    </style>

    <div class='Cell Plus'>div (1)
      <div class='Plus'>Child</div>
    </div>
    
    <div class='Cell Plus'>div (2)
      <div class='Plus'>Child</div>
    </div>

JS:

$(".Cell").find(".Plus").css({"color": "red", "border": "2px solid red"});

結果:

ここに画像の説明を入力


。フィルター()

特定の基準に一致する要素を返します。

上記と同じ html を使用すると、次のようになります。

$(".Cell").filter(".Plus").css({"color": "red", "border": "2px solid red"});

結果:

フィルタ結果

于 2019-11-14T12:52:37.213 に答える