2011-08-07 7 views
5

En jQuery hay algunos selectores de colon comoselectores de colon jQuery

: prev,: A continuación,: últimos

Mi pregunta es:

  1. ¿Son realmente parte de jQuery, porque en realidad se usan en elementos DOM?
  2. Parece que tenemos métodos equivalentes también en jQuery prev(), next(), last(). ¿Cuál es el propósito de tener 2 maneras diferentes?

Cualquier ejemplo básico sería realmente genial.

+1

Nunca supe que había un selector ': prev' o': next'. – BoltClock

+0

Sé ': last' pero no': prev' y ': next'. ¿Estás usando algún complemento? –

+0

Se eliminó esa etiqueta en particular ... fue por error ... – testndtv

Respuesta

10

jQuery no tiene :prev:next o selectores, no tengo ni idea de dónde viene a través de ellos. Sin embargo, hay un selector :last, así como :first, provisto por la biblioteca de selectores Sizzle, utilizado por jQuery. Es un selector no estándar, no parte de CSS, y por lo tanto se implementa en JavaScript.

Uno de los propósitos del selector :last sobre el método .last() es por lo que se puede utilizar para filtrar elementos en el medio de una secuencia de selección, como esto (tenga en cuenta que :last y :last-child no son lo mismo):

$('.a > .b:last > .c') 

en lugar de tener que escribir una cadena de métodos como esto:

$('.a').children('.b').last().children('.c'); 

Por cierto, los "selectores de colon" que se refieren a los llamados pseudo-clases (coloquialmente conocido pero incorrectamente una s "pseudo-selectores").

+0

¡Gran respuesta a una pregunta confusa! – jpaugh

1
  1. sí, que están en el documentation
  2. a veces no siempre se puede incluir todo, en el selector o desea una subdivisión del selector.

e.g.

$(".mylist").each(function(){ 
    $(this).css("color","red"); 
    $(this).next().show(); 
}) 
+1

Solo ': last' está en la documentación, no': prev' o ': next'. – Guffa

+1

@Guffa Interpreté la declaración de los carteles * "... selectores como" * para incluir generalmente todos los constructos del selector, y respondí la pregunta de por qué podría usar uno sobre el otro. (también el enlace a la documentación debe enmendar esto) –

1

El colon representa un filtro como para obtener la opción seleccionada en el menú desplegable que usaría $("select option:selected") o para obtener una caja de radio comprobado que usaría $("input[type=radio]:checked");

No hay: ant e: próximos filtros, pero puede encontrar una lista completa de filtros aquí http://api.jquery.com/category/selectors/

2

Así es como hice un control deslizante con todo tipo de selectores y atravesar objetos.

$('#next').click(function() { 
    if (!$('*').is(':animated')) { 
    if ($('div.display:visible').is(':nth-child(3)')) { 

     $('div.display:visible').fadeOut(); 
     $('div.display:first').fadeIn(function() { 
     $(this).children().fadeIn(); 
     }); 

    } else { 

     $('div.display:visible').fadeOut().next().fadeIn(function() { 
     $(this).children().fadeIn(); 
     }); 
    } 
    } 

}); 

$('#prev').click(function() { 
    if (!$('*').is(':animated')) { 
    if ($('div.display:visible').is(':nth-child(1)')) { 
     $('div.display:visible').fadeOut(); 
     $('div.display:last').fadeIn(function() { 
     $(this).children().fadeIn(); 
     }); 

    } else { 
     $('div.display:visible').fadeOut().prev().fadeIn(function() { 
     $(this).children().fadeIn(); 
     }); 
    } 
    } 

}); 
+5

¿Respondió la pregunta incorrecta? – BoltClock

+3

Que yo sepa. Pidieron ejemplos y esto tiene una tonelada de selectores de colon y cómo los usé. – Xeo