如何检查div是来自父div的最后一个孩子

时间:2013-03-06 10:49:23

标签: javascript jquery

Jquery JavaScript 中有.hasNext()之类的功能。我有代码:

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需要做某事。我该怎么办?

7 个答案:

答案 0 :(得分:2)

您可能想要:last-child

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

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

});

编辑:

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

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

  $(this).doSomething();

});

答案 1 :(得分:1)

您可以尝试.next()进行检查。 read more。与.length方法一起使用可以检查DOM上是否还有其他项目。

示例代码

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

答案 2 :(得分:1)

当您尝试选择元素时,您应该验证是否有任何元素:

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

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

答案 3 :(得分:1)

尝试类似的东西

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

<强>第二

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

答案 4 :(得分:1)

你看过$.fn.nextAll()吗?

答案 5 :(得分:1)

使用:last-child选择器

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

答案 6 :(得分: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');
}