2010-10-11 7 views
21

J'ai une liste dynamique et je dois sélectionner l'avant dernier élément.jquery selector last-last

<ul class="album"> 
    <li id='li-1'></li> 
    <!-- ... --> 
    <li id='li-8'></li> 
    <li id='li-9'></li> 
    <li class='drop-placeholder'>drag your favorites here</li> 
</ul> 

var lastLiId = $(".album li:last").attr("id"); // minus one? 

Répondre

59

Vous pouvez utiliser .eq() avec une valeur négative (-1 est le dernier) pour obtenir n de la fin, comme ceci:

$(".album li").eq(-2).attr("id"); // gets "li-9" 

You can test it here.

+0

aha, l'éq devient négatif! – FFish

+0

@richsage - Ils le font :) "Fournir un nombre négatif indique une position à partir de la fin de l'ensemble, plutôt que le début", assurez-vous que vous regardez les docs '.eq()' et non ': eq() 'docs: http://api.jquery.com/eq/ –

15

Probablement plus propre chemin, mais que diriez-vous:

var lastLiId = $(".album li:last").prev("li").attr("id");