2016-09-15 47 views
-1

我有这个标记。如何才能选择此类的第一次出现?

<form> 
    <fieldset id="step-1"> 
    <!-- form code--> 
    <a class="previous"></a> 
    <a class="next"></a> 
    </fieldset> 

    <fieldset id="step-2"> 
    <!-- form code--> 
    <a class="previous"></a> 
    <a class="next"></a> 
    </fieldset> 

    <fieldset id="step-3"> 
    <!-- form code--> 
    <a class="previous"></a> 
    <a class="next"></a> 
    </fieldset> 

</form> 

我的jQuery

 $('.previous').on('click', function(evr) { 
     evr.preventDefault(); 
     if ($(this).closest('fieldset').not('#step-1')){ 
      $(this).parent('fieldset').slideUp(function(){ 
      $(this).prev('fieldset').slideDown(); // this doesn't work 
      }); 
     } 
     }); 
     $('.next').on('click', function(e){ 
     e.preventDefault(); 
     if ($(this).closest('fieldset').not('#step-3')){ 
      $(this).closest('fieldset').slideUp(); 
      $(this).closest('fieldset').next('fieldset').slideDown(); 
     } 
     else if ($(this).closest('fieldset').is('#step-3')) { 
      $('#step-3').slideUp(); 
     } 
     }); 

我试图创建一个多步骤的模式,每个Fieldset将隐藏自身,当你点击下一步按钮。我遇到的问题是上一个按钮。我似乎无法从第二个字段集的上一个按钮中选择第一个字段集。

如何选择以前的字段集?这也应该从第3步起作用。

+1

尝试使用':在JS – Sasikumar

+0

或'first'选择:当量(0)', '.eq(0)','.first()' –

+1

这应该很容易研究 – charlietfl

回答

1

可以使用第一和最后一个方法和psudo选择在jQuery的

$('.previous').not(':first').on('click', function(e) { 
    e.preventDefault(); 
    $(this).parent('fieldset').slideUp(function(){ 
     $(this).prev('fieldset').slideDown(); // this doesn't work 
    }); 

    }); 
    $('.next').not(':last').on('click', function(e){ 
     e.preventDefault(); 
     $(this).closest('fieldset').slideUp(); 
     $(this).closest('fieldset').next('fieldset').slideDown(); 
    }); 

$('.previous:first').click(function(e){ 
    console.log('first prev clicked'); 
}); 
$('.next:last').click(function(e){ 
    console.log('last next clicked'); 
    $('fieldset:last').slideUp(); 
}) 
0

与类选择像如下所示使用:first选择

$('.previous:first').on('click', function(evr) { 
    alert("first"); 
}); 
$('.next:first').on('click', function(e){ 
    alert("nfirst"); 
}); 

例拨弄https://jsfiddle.net/x3x0dr2x/

0

可以使用.first()用于选择任何类,其中类被分配给多个元件的第一元件。

检查使用说明书here

+0

这样可以正常工作,但有3个步骤。如果我点击第3步中的上一个按钮,这将只会使第1步重新出现。 – ProEvilz

相关问题