2011-12-31 8 views
5

En la siguiente jQuery, el método .each() toma dos argumentos: 'ul li a' y menu. ¿Qué significan estos dos argumentos?Explicación de dos argumentos para el método jQuery .each()

var menu = $('.menu'); 
$('ul li a', menu).each(function() { 
    $(this).append('<span />'); 
}); 

HTML:

<div class="menu"> 
    <ul> 
     <li><a href="#">Edit Profile</a></li> 
     <li><a href="#">Account Settings</a></li> 
     <li><a href="#">Appear Offline</a></li> 
     <li><a href="#">Logout</a></li> 
    </ul> 
</div> 

Respuesta

7

El segundo parámetro a la función jQuery es el contexto. Esto le dice a jQuery para única búsqueda de elementos que se encuentran en ese contexto

Así que para su ejemplo:

$('ul li a', menu).each(function() { 
    $(this).append('<span />'); 
}); 

Esto sólo buscará los anclajes dentro de li de dentro de un ul, que también se encuentra en el interior de menú.

Esto puede ser una optimización muy útil ya que puede reducir significativamente la cantidad de espacio que jQuery tiene que buscar.

EDITAR

Para posiblemente hacer esto un poco más claro (como jfriend00 señala), su ejemplo particular, $('ul li a', menu), es equivalente a $('.menu ul li a')

El parámetro de contexto se explica aquí en el docs

+0

Para aclarar: '$ ('ul li a', menú)' es lo mismo que '$ ('. Menu ul li a')' en este caso particular. – jfriend00

+0

realmente clarifieed –

+0

@ jfriend00 - Agregué eso a mi respuesta - gracias, y disfrute de sus nuevas insignias :) –

1

Hola Brother Assalamu Alaikkum,
La explicación es la siguiente,
El primer parámetro es 'ul li a' Significa que busca la etiqueta de anclaje dentro de la etiqueta elemento lista que a su vez presente dentro de la etiqueta lista desordenada. Este primer argumento es el sub contexto.

El segundo parámetro menú que es el contexto principal. Eso es jquery busca los elementos con el nombre de clase como "menú".

Finalmente jquery busca el contexto secundario dentro del contexto principal. Entonces, el jquery busca primero el contexto principal "menú" y luego busca el contexto secundario dentro del contexto principal. La palabra clave "cada" denota todos los subelementos a buscar dentro del elemento principal.

Espero que esto te ayude.

Cuestiones relacionadas