jQuery: differenze tra .not() e .filter()

jQuery: differenze tra .not() e .filter()

Apparentemente i metodi .not() e .filter() svolgono un compito molto simile in jQuery, ossia quello di escludere determinati elementi dalla selezione. In realtà queste analogie sono solo superficiali.

.not() esclude gli elementi solo in base ad un selettore:


$( "li", "#list" ).not( ".selected" ).each( ... );

.filter() al contrario prevede anche una funzione di callback per eseguire l'esclusione:


$( "li", "#list" ).filter(function( index ) {
	return $( "strong", this ).length == 1;
}).each( ... );

In questo caso la selezione escluderà quelle voci di lista che contengono un elemento strong. Come si può notare, .filter() è molto più potente e versatile di .not().

Torna su