Pregunta

Estoy tratando de configurar mi selector de jQuery, pero no estoy exactamente seguro de cómo debo escribir.

Tengo una lista desordenada que se ve algo como esto:

<ul>
    <li>something</li>
    <li>something</li>
    <li>something</li>
    <li>something</li>
    <li class="last">something</li>
</ul>

Ahora sé que si quiero seleccionar el último niño que puede hacer que, mediante el uso de "ul li.la última" o "ul.li:last", pero dicen que si yo quería que el segundo de la última, o de terceros, o 20?Ahora lo voy a hacer?

¿Fue útil?

Solución

Utiliza eq:

$('ul li').eq(X);

Donde X es un índice basado en 0 de las cuales el elemento deseado.También se podría utilizar el selector de formulario:

$('ul li:eq(X)');

Y también se puede lograr un resultado similar mediante el uso de nth-child:

$('ul li:nth-child(X)');

La documentación tiene que decir acerca de la diferencia entre nth-child y eq:

Mientras :eq(índice) coincide con un solo elemento, esto corresponde a más de uno:Uno para cada uno de los padres con el índice.Múltiples para cada uno de los padres con par, impar, o una ecuación.El índice especificado es uno indexados, en contraste a :eq (), que empieza desde cero.

Así que el hacer $('ul li').eq(19); se obtendrá el solo 20 igualó elemento de la consulta (así que si hay más de una lista en el documento que esto no te "todos 19 los niños", mientras que $('ul li:nth-child(20)'); obtendría cada uno de los 20 igualó el elemento de la lista de cada <ul> en el documento.

EDITAR:

Para hacer algo como "la segunda a la última", la misma manera de hacerlo sería:

var $ul = $('#mylist > li');
var $el = $ul.eq($ul.length-2);

Pero probablemente, usted debe hacer una comprobación para asegurarse de longitud-2 no es menor que 0.

Otros consejos

¿Quieres el tercero del último?

var $ul = $("ul li");
$ul.find(":eq(" + Math.max(0, $ul.length - 3) + ")");

Explicación rápida: La longitud de $ ul (que es un objeto jQuery) es cuántas li se encuentran. Entonces puede usar eso junto con & Quot;: eq (n) & Quot; selector para obtener el li en el índice deseado.

Usé Math.max en caso de que la lista fuera demasiado corta (menos de 3 li's).

Esto también funcionará, pero obviamente no es la mejor manera:

var $ul = $("ul li:last").prev().prev();

Para el tercero y el vigésimo, puede hacer ul li: eq (3) y ul li: eq (20) . Para el penúltimo, es posible que pueda hacer algo con nth-child opción de argumento ecuación , aunque no estoy seguro.

alert($('ul li').eq(3).text());

Eso alertará al texto del tercer elemento de la lista.

El equipo de jQuery agregó esta función en la versión 1.9

Puede leer sobre ello en http://api.jquery.com/nth -last-child-selector /

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top