2013-03-06 18 views
5

JqueryまたはJavaScriptは、.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'); 
} 
関連する問題