2010-06-23 18 views
9

Mi sento come $('.selector', myContext) e myContext.find('.selector') sono due modi identici per ottenere le stesse informazioni. Esiste una ragione pratica per usare l'una sull'altra? Velocità forse?

risposta

10

$('.selector', myContext) e $(myContext).find('.selector') sono completamente equivalenti:

Dalla fonte jQuery 1.4.2 (core.js):

//... 

// HANDLE: $(expr, context) 
// (which is just equivalent to: $(context).find(expr) 
} else { 
    return jQuery(context).find(selector); 
} 

//... 
+0

mi ricordo un post sul blog o qualcosa, probabilmente da John Resig, che depreca il "contesto" stile di secondo parametro. – Pointy

+0

grazie per questa risposta – Jason

+1

@Pointy se potessi trovare un link, ti ​​dispiacerebbe postare qui? Ho usato il parametro context prima e mi piace regolare le mie pratiche di codifica nel modo raccomandato. – jinglesthula

1

La prima prevede leggermente meno caratteri di codice, ma a parte che la stessa cosa

0

Quando un nuovo oggetto jQuery si crea il costruttore cerca di capire che cosa è stato passato a quando il contesto è un DOMElement jQuery trasforma $ (selettore, contesto) in $ (contesto).. trovare (selettore). È possibile evitare gran parte della logica che il costruttore esegue, inclusa l'analisi delle stringhe, apportando questa modifica personalmente. (estratto dal seguente post: http://engineeredweb.com/blog/10/12/3-tips-make-your-jquery-selectors-faster/ )

Problemi correlati