2011-05-19 60 views
31

我有這樣的事情......如何找出jQuery中每個()的最後一個索引?

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

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

}); 

我需要知道的是什麼指數爲最後一個元素,所以我可以做這樣的...

if (index !== lastIndex) { 

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

} else { 

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

} 

任何想法,夥計們?

+0

可能重複[中。每次最後一個元素()集] (http://stackoverflow.com/questions/4006822/last-element-in-each-set) – 2014-10-30 23:36:46

回答

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

+這是一個很好的例子,但是在使用'keys'('indexes')循環JSON對象時,這不起作用。因爲'索引'不是一個數字。 – Ifch0o1 2016-02-18 11:18:31

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

    }); 
8

請記住緩存選擇器$("ul li"),因爲它不便宜。

緩存長度本身是一個微型優化,但這是可選的。

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

lis.each(function(i) { 
    if (i === len - 1) { 
     $(this).append(";"); 
    } else { 
     $(this).append(","); 
    } 
}); 
13
var arr = $('.someClass'); 
arr.each(function(index, item) { 
var is_last_item = (index == (arr.length - 1)); 
}); 
0

這是一個非常古老的問題,但有一個更優雅的方式來做到這一點:

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