2013-03-06 107 views
5

JqueryJavaScript有一个功能,如.hasNext()。我的代码:如何检查div是否是来自父div的最后一个孩子

function showArrowClick() { 
    var activeContact = $('.contact.white_bg'); 
    activeContact.removeClass('white_bg'); 
    activeContact.next().addClass('white_bg'); 
} 

和家长的div是

<div class="list"> 
    <div class="contact white_bg all_contacts">All</div> 
    <div class="contact">Contact1</div> 
    <div class="contact">Contact2</div> 
</div> 

后点击最后一个div需要做的事情。我该怎么做?

回答

1

您应该确认是否有当你试图将其选中任何元素:

function showArrowClick() { 
    var activeContact = $('.contact.white_bg'); 

    if(activeContact.next('div.contact').length > 0) { 
    activeContact.removeClass('white_bg'); 
    activeContact.next().addClass('white_bg'); 
    } 
} 
1

您可以尝试.next()进行检查。 read more。通过.length方法使用它来检查DOM上是否有更多项目。

示例代码

alert($('div.contact').next().length); 
1

尝试像

$('.list').find("div.contact:last").addClass('white_bg'); 

$('.list .contact:last-child').addClass('white_bg'); 
1

使用:最后一子选择

$(".list div:last-child").on('click', function(){ 
//Do something 
}); 
2

你可能想:last-child

$('a').click(function() { 

    $('.list .contact:last-child').doSomething(); 

}); 

编辑:

或者,如果你的意思是单击最后一个孩子本身......

$('.list .contact:last-child').click(function() { 

    $(this).doSomething(); 

}); 
1
function showArrowClick() { 
    var activeContact = $('.contact.white_bg'); 
    var index = activeContact.index(); 
    if (index === $(".contact.white_bg").children().length - 1) { 
    // Current seleceted is the last div 
    } 
    activeContact.removeClass('white_bg'); 
    activeContact.next().addClass('white_bg'); 
} 
相关问题