2010-06-23 15 views
9

Siento que $('.selector', myContext) y myContext.find('.selector') son dos formas idénticas de obtener la misma información. ¿Hay alguna razón práctica para usar uno sobre el otro? Velocidad tal vez?

Respuesta

10

$('.selector', myContext) y $(myContext).find('.selector') son completamente equivalentes:

Desde la fuente de jQuery 1.4.2 (core.js):

//... 

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

//... 
+0

sí recuerdo un blog o algo así, probablemente de Juan Resig, que desaprueba el estilo del segundo parámetro "contexto". – Pointy

+0

gracias por esta respuesta – Jason

+1

@Pointy si pudiera encontrar un enlace, ¿le importaría publicar aquí? He usado el parámetro de contexto anteriormente y me gusta ajustar mis prácticas de codificación de la manera recomendada. – jinglesthula

1

La primera consiste en un poco menos caracteres de código, pero aparte de eso lo mismo

0

Cuando un nuevo objeto jQuery se crea el constructor intenta averiguar lo que se aprobó en Cuando el contexto es un DOMElement jQuery transforma $ (selector, el contexto) en $ (contexto).. encontrar (selector). Puede evitar gran parte de la lógica que hace el constructor, incluido el análisis sintáctico de cadenas, al hacer esto usted mismo. (extracto del siguiente mensaje: http://engineeredweb.com/blog/10/12/3-tips-make-your-jquery-selectors-faster/ )