5

JqueryJavaScript中具有类似.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 后需要做一些事情。我该怎么做?

4

7 回答 7

2

你可能会想要:last-child.

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

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

});

编辑:

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

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

  $(this).doSomething();

});
于 2013-03-06T10:53:41.167 回答
1

你可以试着.next()检查一下。阅读更多。将它与.lengthget 方法一起使用以检查 DOM 上是否还有其他项目。

示例代码

alert($('div.contact').next().length);
于 2013-03-06T10:51:58.853 回答
1

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

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

   if(activeContact.next('div.contact').length > 0) {
     activeContact.removeClass('white_bg');
     activeContact.next().addClass('white_bg');
   }
}
于 2013-03-06T10:52:07.770 回答
1

尝试类似的东西

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

第二

$('.list .contact:last-child').addClass('white_bg');
于 2013-03-06T10:52:12.697 回答
1

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

于 2013-03-06T10:53:10.030 回答
1

使用:last-child 选择器

$(".list div:last-child").on('click', function(){
//Do something
});
于 2013-03-06T10:53:39.063 回答
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');
}  
于 2013-03-06T10:56:53.383 回答