No es necesario proporcionar un elemento real junto con un filtro, como $ ('div: oculto')
. Es posible simplemente pasar el filtro solo, en cualquier lugar donde se espera una expresión de selector.
Algunos ejemplos:
// Selecciona todos los elementos ocultos $ (': hidden'); // Selecciona todos los elementos div, luego selecciona solo los elementos pares $ ('div'). Filter (': even');
Los filtros de selección de jQuery personalizados :oculto
y :visible
No tome en cuenta la propiedad de visibilidad CSS como se podría esperar. La forma en que jQuery determina si un elemento está oculto o visible es si el elemento consume cualquier espacio en el documento. Para ser exactos, un elemento es visible si su navegador lo informa offsetWidth
o offsetHeight
es mayor que 0. De esa manera, un elemento que podría tener un CSS monitor
valor de bloquear
contenido en un elemento con una monitor
valor de ninguna
Informaría con precisión que no es visible..
Examine el código cuidadosamente y asegúrese de entender por qué el valor devuelto es A menudo es necesario determinar si el conjunto de elementos seleccionado contiene, de hecho, un elemento específico. Utilizando la Debe ser evidente que el segundo Notas: A partir de jQuery 1.3, la El filtro es usado por otras funciones internas de jQuery. Por lo tanto, todas las reglas que se aplican allí, se aplican aquí, también. Algunos desarrolladores usan Puede proporcionar el primer parámetro de la función jQuery varias expresiones separadas por una coma: es el Cada una de estas expresiones selecciona elementos DOM que se agregan al conjunto de envoltura. Entonces podemos operar en estos elementos utilizando métodos jQuery. Tenga en cuenta que todos los elementos seleccionados se colocarán en el mismo conjunto de envoltorios. Una forma ineficiente de hacer esto sería llamar a la función jQuery tres veces, una para cada expresión. Es posible determinar si su expresión ha seleccionado algo al verificar si el conjunto de envoltura tiene una longitud. Puedes hacerlo usando la propiedad array Notas: Si no es obvio, la propiedad de longitud también puede informar el número de elementos en el conjunto de envoltura; dicho de otra manera, cuántos elementos fueron seleccionados por la expresión pasada a la función jQuery. Las capacidades del motor de selección de jQuery se pueden ampliar creando sus propios filtros personalizados. En teoría, todo lo que está haciendo aquí se basa en los selectores personalizados que ya forman parte de jQuery. Por ejemplo, supongamos que nos gustaría seleccionar todos los elementos en una página web que estén absolutamente posicionados. Ya que jQuery no tiene ya una costumbre. Lo más importante que hay que entender aquí es que no está limitado a los selectores predeterminados que proporciona jQuery. Puedes crear el tuyo propio. Sin embargo, antes de dedicar tiempo a crear su propia versión de un selector, simplemente intente Notas: Para obtener información adicional acerca de cómo crear sus propios selectores, sugiero lo siguiente: http://www.bennadel.com/blog/1457-How-To-Build-A-Custom-jQuery-Selector.htm jQuery proporciona filtros para filtrar un conjunto de envoltura por el contexto numérico de un elemento dentro del conjunto. Estos filtros son: Notas: Los filtros que filtran el conjunto de envoltorio lo hacen al filtrar elementos en el conjunto en un punto de inicio de 0, o un índice de 0. Por ejemplo Utilizando Si no es obvio, permítame explicarlo más. La razón que Con una comprensión clara de la manipulación del conjunto en sí, podemos aumentar nuestra comprensión de la selección de elementos mediante el uso de filtros que seleccionan elementos que tienen relaciones únicas con otros elementos dentro del DOM real. jQuery proporciona varios selectores para hacer esto. Algunos de estos selectores son personalizados, mientras que otros son expresiones CSS bien conocidas para seleccionar elementos DOM. El uso de estos filtros de selección seleccionará elementos en función de su relación dentro del DOM como pertenecientes a otros elementos en el DOM. Para demostrar este concepto, veamos algunos códigos. Si te sorprende el hecho de que El concepto a quitar es que no todos los filtros se crean igualmente. Asegúrate de que entiendes cuáles filtran en base a las relaciones DOM-e.g. Los selectores jQuery utilizan un conjunto de meta-caracteres (por ejemplo,. Aquí está la lista completa de caracteres que deben escaparse cuando se usan como parte literal de un nombre. Es posible apilar filtros de selección-e.g. Solo uno Observe en el código cómo hemos apilado dos filtros para lograr esta selección. Se pueden apilar otros filtros de selección además de los filtros de atributos. Por ejemplo: El concepto que se debe quitar es que los filtros de selección se pueden apilar y utilizar en combinación. Notas: También puede anidar y apilar filtros, por ejemplo,. Los filtros selectores pueden estar anidados. Esto le permite ejercer filtros de una manera muy concisa y potente. A continuación, doy un ejemplo de cómo puede anidar filtros para realizar un filtrado complejo.. El concepto a quitar es que los filtros selectores pueden ser anidados. Notas: También puede anidar y apilar filtros, por ejemplo,. los Cuando los filtros de atributos jQuery utilizados para seleccionar elementos no son lo suficientemente robustos, intente usar expresiones regulares. James Padolsey ha escrito una extensión agradable para los selectores de filtro que nos permitirá crear expresiones regulares personalizadas para el filtrado. He proporcionado un ejemplo de código aquí, pero asegúrese de consultar también el artículo en http://james.padolsey.com para obtener todos los detalles. Los elementos hijos directos solo se pueden seleccionar utilizando el combinador texto texto Es posible utilizar el combinador. Básicamente, cierto
a pesar de bloqueo de pantalla
.
Uso del método Is () para devolver un valor booleano
es()
Método, podemos verificar el conjunto actual contra una expresión / filtro. El cheque volverá cierto
si el conjunto contiene al menos un elemento que está seleccionado por la expresión / filtro dado. Si no contiene el elemento, un falso
se devuelve el valor. Examina el siguiente código:
alerta()
devolverá un valor de falso porque nuestro conjunto de envoltorios no contenía una carné de identidad
valor de atributo de i2
. los es()
El método es bastante útil para determinar si el conjunto de envoltura contiene un elemento específico. es()
El método soporta todas las expresiones. Anteriormente, expresiones complejas como las que contienen selectores de jerarquía (como +
, ~
, y >
) siempre devuelto cierto
.es ('. clase')
para determinar si un elemento tiene una clase específica. No olvides que jQuery ya tiene un método para hacer esto llamado hasClass ('clase')
, que se puede utilizar en elementos que contienen más de un valor de clase. Pero la verdad sea dicha, hasClass ()
es sólo un envoltorio conveniente para el es()
método.
Puede pasar jQuery más de una expresión de selector
$ ('expresión, expresión, expresión')
. En otras palabras, no está limitado a seleccionar elementos utilizando solo una expresión. Por ejemplo, en el siguiente ejemplo, estoy pasando la función jQuery tres expresiones separadas por una coma.
Comprobación del conjunto de envoltura .length para determinar la selección
longitud
. Si el longitud
La propiedad no devuelve 0, entonces usted sabe que al menos un elemento coincide con la expresión que pasó a la función jQuery. Por ejemplo, en el código a continuación revisamos la página para un elemento con un carné de identidad
de "no aquí" ¿Adivina qué? No está aquí!
Creación de filtros personalizados para seleccionar elementos
: positionAbsolute
Filtro, podemos crear nuestro propio.
filtrar()
Método con una función de filtrado especificada. Por ejemplo, podría haber evitado escribir el : positionAbsolute
selector simplemente filtrando el filtrar()
método. // Retirar
Diferencias entre el filtrado por orden numérico y las relaciones DOM
:primero
:último
:incluso
:impar
: eq (index)
: gt (índice)
: lt (index)
: eq (0)
y :primero
Accede al primer elemento del conjunto. - $ ('div: eq (0)')
- que está en un índice de 0 Esto está en contraste con el : nth-child
filtro que es de un solo índice. Significado, por ejemplo, : nth-child (1)
devolverá el primer elemento hijo, pero tratando de usar : nth-child (0)
no trabajará. Utilizando : nth-child (0)
siempre seleccionará nada.:primero
seleccionará el primer elemento en el conjunto mientras :último
Seleccionará el último elemento del conjunto. Recuerde que filtran el conjunto según la relación (jerarquía numérica que comienza en 0) dentro del conjunto, pero no las relaciones de los elementos en el contexto del DOM. Dado este conocimiento, debería ser obvio por qué los filtros :primero
, :último
, y : eq (index)
siempre devolverá un solo elemento.:primero
solo puede devolver un único elemento porque solo puede haber un elemento en un conjunto que se considera primero cuando solo hay un conjunto. Esto debería ser bastante lógico. Examine el código de abajo para ver este concepto en acción.
ancestro descendiente
padre> niño
prev + next
prev ~ hermanos
: nth-child (selector)
:primer hijo
:último niño
:hijo único
:vacío
: tiene (selector)
:padre
$ ('li: nth-child (impar)'). text ()
devuelve el valor 135135, aún no está incorporando filtros de relación. La declaración, $ ('li: nth-child (impar)')
dicho verbalmente sería "encontrar todo elementos en la página web que son niños, y luego los filtran por niños extraños. "Bueno, da la casualidad de que hay dos estructuras en la página que tienen una agrupación de hermanos compuesta por
s. Mi punto es este: el conjunto de envoltura está formado por elementos basados en un filtro que tiene en cuenta la relación de un elemento con otros elementos en el DOM. Estas relaciones se pueden encontrar en múltiples ubicaciones.
:hijo único
-y cuáles filtran por la posición de los elementos, p. ej.. : eq ()
-en el set envuelto.
Selección de elementos por identificación cuando el valor contiene metacaracteres
# ~ [] =>
) que cuando se usa como parte literal de un nombre (por ejemplo,. id = "# foo [bar]"
) debe ser escapado. Es posible escapar de los caracteres colocando dos barras invertidas antes del carácter. Examine el código a continuación para ver cómo usar dos barras invertidas en la expresión de selección nos permite seleccionar un elemento con un valor de atributo de id de #foo [bar]
.
#
;
Y
,
.
+
*
~
'
:
"
!
^
PS
El
]
(
)
=
>
|
/
Filtros de selector de apilamiento
a [title = "jQuery"] [href ^ = "http: //"]
. El ejemplo obvio de esto es seleccionar un elemento que tenga atributos específicos con valores de atributos específicos. Por ejemplo, el código de jQuery a continuación solo seleccionará Elementos en la página HTML que:
href
atributo con un valor inicial de "http: //"título
atributo con un valor de "jQuery" esta siendo seleccionado.
jQuery.com jQuery.com 1 jQuery.com
// Seleccionar el último
$ ('p'). filter (': not (: first): not (: last)')
Filtros de selección de nidos
$ ('p'). filter (': not (: first): not (: last)')
Grokking el: nth-child () Filtro
: nth-child ()
El filtro tiene muchos usos. Por ejemplo, digamos que solo desea seleccionar cada tres elemento contenido dentro de un
elemento. Es posible con el : nth-child ()
filtrar. Examine el siguiente código para comprender mejor cómo usar el : nth-child ()
filtrar.
Selección de elementos mediante la búsqueda de valores de atributos mediante expresiones regulares
Diferencia entre seleccionar hijos directos y todos los descendientes
>
o por medio de la niños()
método de desplazamiento. Todos los descendientes se pueden seleccionar usando el *
Expresión CSS Asegúrese de que entiende claramente la diferencia entre los dos. El siguiente ejemplo demuestra las diferencias..
Selección de elementos secundarios directos cuando ya se ha establecido un contexto
>
sin un contexto para seleccionar elementos secundarios directos cuando ya se ha proporcionado un contexto. Examina el código de abajo.
'> elemento'
se puede utilizar como una expresión cuando ya se ha determinado un contexto.