如何找出jQuery中每个()的最后一个索引?

时间:2011-05-19 16:35:07

标签: jquery loops indexing each

我有这样的事情......

$( 'ul li' ).each( function( index ) {

  $( this ).append( ',' );

} );

我需要知道最后一个元素的索引是什么,所以我可以这样做......

if ( index !== lastIndex ) {

  $( this ).append( ',' );

} else {

  $( this ).append( ';' );

}

任何想法,伙计们?

6 个答案:

答案 0 :(得分:79)

var total = $('ul li').length;
$('ul li').each(function(index) {
    if (index === total - 1) {
        // this is the last one
    }
});

答案 1 :(得分:14)

var arr = $('.someClass');
arr.each(function(index, item) {
var is_last_item = (index == (arr.length - 1));
});

答案 2 :(得分:9)

请记住缓存选择器$("ul li"),因为它并不便宜。

缓存长度本身就是微观优化,但这是可选的。

var lis = $("ul li"),
    len = lis.length;

lis.each(function(i) {
    if (i === len - 1) {
        $(this).append(";");
    } else {
        $(this).append(",");
    }
});

答案 3 :(得分:6)

    var length = $( 'ul li' ).length
    $( 'ul li' ).each( function( index ) {
        if(index !== (length -1 ))
          $( this ).append( ',' );
        else
          $( this ).append( ';' );

    } );

答案 4 :(得分:0)

这是一个非常古老的问题,但有更优雅的方法:

$('ul li').each(function() {
    if ($(this).is(':last-child')) {
        // Your code here
    }
})

答案 5 :(得分:0)

使用jQuery .last();

$("a").each(function(i){
  if( $("a").last().index() == i)
    alert("finish");
})

DEMO