¿Qué significa $ (” clase para el mismo elemento ‘, elemento)?

No entiendo esta syntax:

var dir = $("a.store").parents("table")[0]; var stores = $("a.store:has(b)", dir); 

¿Qué contiene la store ?

¿Cuál es el significado de "$("a.store:has(b)", dir);" ?

Devolverá una colección de elementos dom que coinciden con el selector css (“a.store:has(b)”) que son hijos del elemento dom almacenado en la variable ‘dir’.

En su ejemplo, dir es el contexto del selector. De los documentos vinculados por felix en su comentario:

De forma predeterminada, los selectores realizan sus búsquedas dentro del DOM a partir de la raíz del documento. Sin embargo, se puede dar un contexto alternativo para la búsqueda usando el segundo parámetro opcional para la función $ (). Por ejemplo, para realizar una búsqueda dentro de un controlador de eventos, la búsqueda se puede restringir así:

 $('div.foo').click(function() { $('span', this).addClass('bar'); }); 

De los documentos de jQuery,

: tiene () Selector

Selecciona elementos que contienen al menos un elemento que coincide con el selector especificado.

La expresión $ (‘div: has (p)’) coincide con

si existe

en cualquier lugar entre sus descendientes, no solo como hijo directo.

http://api.jquery.com/has-selector/

Respecto al segundo parámetro de jQuery, es el contexto. Puede ser un elemento DOM en el que opera el selector.

En su caso: var dir tendrá una table que es padre de

la variable de tienda contendrá solo aquellos que tienen una dentro de ellos.

 $("a.store") 

.store todos los elementos que tienen la clase .store

 .parents("table")[0]; 

Obtendrá las tablas en las que residen .

 $("a.store:has(b)", dir); 

Encontrará todos los elementos que tienen la clase .store y contienen un elemento , utilizando el dir tablas previamente encontradas, lo que significa que, en lugar de recorrer todo el documento para buscar coincidencias, solo se analizarán estas tablas .

En su forma más simple ..

Es equivalente a hacer ..

 $('someParent').find('.matchingDescendants');