43 votes

Comment trouver le dernier indice de each() en jQuery ?

J'ai quelque chose comme ça...

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

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

} );

J'ai besoin de savoir quel sera l'indice du dernier élément, afin de pouvoir faire comme ceci...

if ( index !== lastIndex ) {

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

} else {

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

}

Des idées, les gars ?

91voto

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

14voto

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

9voto

Raynos Points 82706

N'oubliez pas de mettre en cache le sélecteur $("ul li") parce que ce n'est pas bon marché.

La mise en cache de la longueur elle-même est une micro-optimisation, mais elle est facultative.

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

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

6voto

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

    } );

2voto

Marconi Points 992

En utilisant jQuery .last() ;

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

DEMO

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X