使用jquery $ .each时如何检查当前元素是否是最后一个元素

时间:2014-08-16 12:39:54

标签: javascript jquery

我需要检查使用jquery后的当前元素是否是列表中的最后一个元素 我试过了

    $('#droplist div.panel').each(function(){
        if($(this).last()){
            alert($(this).attr('id')+' is the last order');
        }else{
            alert('Not the last order');
        }

    });

    $('#droplist div.panel').each(function(){
        if($(this).is(':last')){
            alert($(this).attr('id')+' is the last order');
        }else{
            alert('Not the last order');
        }

    });

有一组动态元素正在被选中,因为它们被选中,我循环遍历它们并随着我的进行执行计算。我需要最后一个来终止我的计算功能。即需要标记我已到达当前列表中的最后一个元素。

谢谢大家。

3 个答案:

答案 0 :(得分:4)

您可以获取查询的长度并比较每个循环的当前索引:

var list = $('#droplist div.panel')
var length = list.length;
list.each(function(index){
    if(index == length-1){
        alert($(this).attr('id')+' is the last order');
    }else{
        alert('Not the last order');
    }
});

答案 1 :(得分:1)

if ($(this).is("#droplist div.panel:last")) {
    ...
}

或:

var panels = $('#droplist div.panel');
var lastpanel = panels.last();
panels.each(function(){
    if($(this).is(lastpanel)){
        alert($(this).attr('id')+' is the last order');
    }else{
        alert('Not the last order');
    }

});

答案 2 :(得分:0)

比较索引和元素总数。

JSFiddle:http://jsfiddle.net/9gmdt1fd/

代码:

$( document ).ready(function() {

    var objects = $("ul li")
    $.each( objects, function( key, value ) {
        if(key == objects.length-1){
            alert(value+' is the last order');
        }else{
            alert('Not the last order');
        }        
    });


});