2010-10-11 76 views
21

我有一个动态列表,需要选择前一个项目。jquery selector before-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? 

回答

59

可以使用.eq()为负值(-1是最后一个)从最终得到n,像这样:

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

You can test it here

+0

aha,eq变负! – FFish 2010-10-11 10:37:27

+0

@richsage - 他们会这样做:)“提供一个负数表示从该集合的结尾开始,而不是从开始的位置”,请确保您正在查看'.eq()'文档而不是': eq()'文档:http://api.jquery.com/eq/ – 2010-10-11 10:46:00

15

可能是一个更合适的方法,但是怎么样:

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