2013-03-06 102 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'); 
} 
相關問題