2013-03-06 3 views
5

In Jquery oder JavaScript haben eine Funktion wie .hasNext(). Ich habe den Code:wie zu überprüfen div ist das letzte Kind von Eltern div

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

und Eltern div ist

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

Nach Klick letzten div Notwendigkeit etwas zu tun. Wie kann ich es tun?

Antwort

1

Sie überprüfen sollten, ob es irgendein Element ist, wenn Sie versuchen, es zu wählen:

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

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

Sie können versuchen, .next() zu überprüfen. read more. Verwenden Sie es mit der .length-Methode, um zu überprüfen, ob weitere Elemente im DOM vorhanden sind.

Beispielcode

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

Probieren Sie etwas wie

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

Zweite

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

Verwenden Sie den: Last-Kind-Selektor

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

Sie werden wahrscheinlich :last-child wollen.

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

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

}); 

Edit:

Oder wenn Sie das letzte Kind selbst gemeint klicken ...

$('.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'); 
} 
Verwandte Themen