2010-03-13 18 views
13

Ho recentemente fatto un salto nel mondo di jQuery. Ho visto i metodi find() e filter() ma non riesco a capire la differenza tra i due.Differenza tra ricerca e filtro

Qual è esattamente la differenza tra i due?

risposta

20

filter riduce il set di elementi già abbinati, mentre find ottiene i discendenti dell'elemento abbinato.

3

find() restituisce figli degli elementi partita per la data di selezione, filter() esamina gli elementi corrispondenti e restituisce quelle che anche corrisponde al dato selettore.

7

find()

find() restituisce i discendenti degli elementi selezionati che corrispondono al selettore.

Dal doc:

Descrizione: I discendenti di ciascun elemento della attuale serie di elementi accoppiati, filtrato da un selettore.

filtro()

filter() filtra gli elementi basati sul selettore o la funzione fornita.

Dal doc:

Descrizione: Ridurre l'insieme di elementi corrispondenti a quelli che corrispondono al selettore o superano la prova della funzione.

7

Mentre cercavo le risposte alla domanda ho trovato un bel blog, spiegando lo stesso. Ecco la link

Inoltre è provarlo su jsfiddle

<html> 
<head> 
    <style>div{ padding:8px; border:1px solid; }</style> 
    <script type="text/javascript" src="jquery-1.3.2.min.js"></script> 
    <script type="text/javascript"> 
     $(document).ready(function(){  
     $("#filterClick").click(function() { 
       $('div').css('background','white');  
       $('div').filter('#Fruits').css('background','red'); 
     });  

     $("#findClick").click(function() { 
       $('div').css('background','white'); 
       $('div').find('#Fruits').css('background','red'); 
     });  
    });   

    </script> 
</head> 
<body> 
    <h1>jQuery find() vs filter() example</h1> 
    <div id="Fruits"> 
     Fruits 
     <div id="Apple">Apple</div> 
     <div id="Banana">Banana</div> 
    </div>  
    <div id="Category"> 
     Category 
     <div id="Fruits">Fruits</div> 
     <div id="Animals">Animals</div> 
    </div> 
    <br/><br/><br/> 
    <input type='button' value='filter(Fruits)' id='filterClick'> 
    <input type='button' value='find(Fruits)' id='findClick'>  
</body> 

Problemi correlati