定位jquery中的最后一个子节点

时间:2014-04-08 12:16:52

标签: javascript jquery

我创建了一个jquery问卷,当用户点击单选按钮时,它会导航到下一个问题click here。在最后一个问题上,可以看到提交按钮,但是如果您单击最后一个单选按钮,则所有内容都会消失。有没有办法在用户到达最后一个问题时停用next()功能。

            $('.responsible-gaming__body input').click(function () {
            selfAssessmentTotal += parseInt($(this).val());
            var parentContainer = $(this).parents('.responsible-gaming__parentContainer');
            parentContainer.hide();
            parentContainer.next('.responsible-gaming__parentContainer').show();
        });

5 个答案:

答案 0 :(得分:0)

使用next('.responsible-gaming__parentContainer').length查看下一个元素存在。如果是,则执行下一个点击代码,否则不执行任何操作:

if(parentContainer.next('.responsible-gaming__parentContainer').length){
   //next element exist....add code here
}

完整代码:

$('.responsible-gaming__body input').click(function () {
        selfAssessmentTotal += parseInt($(this).val());
        var parentContainer = $(this).parents('.responsible-gaming__parentContainer');
        if(parentContainer.next('.responsible-gaming__parentContainer').length){
           parentContainer.hide();
           parentContainer.next('.responsible-gaming__parentContainer').show();
        }
 });

答案 1 :(得分:0)

if(!parentContainer.next('.responsible-gaming__parentContainer').length){
//do your stuff here
}

答案 2 :(得分:0)

if(parentContainer.next('.responsible-gaming__parentContainer').length){
       parentContainer.hide();
       parentContainer.next('.responsible-gaming__parentContainer').show();
 }

DEMO

答案 3 :(得分:0)

将点击功能的选择器更改为

$('.responsible-gaming__parentContainer:not(:last-child) input')

而不是

$('.responsible-gaming__body input')

这使您的代码变得更简单:

$('.responsible-gaming__parentContainer:not(:last-child) input').click(function () {
  selfAssessmentTotal += parseInt($(this).val());
  $(this).parent().parent().hide();
  $(this).parent().parent().next('.responsible-gaming__parentContainer').show();
});

答案 4 :(得分:0)

只有在显示下一个容器时才隐藏parentContainer(如果没有下一个容器,则不会发生这种情况):

$('.responsible-gaming__body input').click(function () {
    selfAssessmentTotal += parseInt($(this).val());
    var parentContainer = $(this).parents('.responsible-gaming__parentContainer');
    parentContainer.next('.responsible-gaming__parentContainer').show(0, function() {
        parentContainer.hide();
});

JSFiddle