使Javascript函数忽略提交表单的最后一个li

时间:2015-09-14 12:58:46

标签: javascript jquery html

我有以下HTML代码:

<div class="ranges">
<ul>
<li>Op 1</li>
<li>Op 2</li>
<li>Op 3</li>
<li>Op 4</li>
<li>Op 5</li>
<li>Op 6</li>
<li>Op 7</li>
</ul>

我需要通过点击op 1,op 2,op 3,op 4,op 5,op 6提交表单。换句话说,最后li,无法提交表单。 `在这个代码我试图实现这一点:

  gData.on('click', '.ranges ul li', function(e){
    gFilter.find('form').submit();
  });

但是这个.ranges ul li会获得所有li。我怎么能忽略最后一个呢?

4 个答案:

答案 0 :(得分:8)

您可以结合使用 :not() :last

gData.on('click', '.ranges ul li:not(:last)', function(e){
   gFilter.find('form').submit();
});

&#13;
&#13;
$('body').on('click', '.ranges ul li:not(:last)', function(e){
    alert('clicked');
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="ranges">
  <ul>
    <li>Op 1</li>
    <li>Op 2</li>
    <li>Op 3</li>
    <li>Op 4</li>
    <li>Op 5</li>
    <li>Op 6</li>
    <li>Op 7</li>
  </ul>
&#13;
&#13;
&#13;

答案 1 :(得分:4)

这应该有效:

  gData.on('click', '.ranges ul li:not(:last-child)', function(e){
    gFilter.find('form').submit();
  });

答案 2 :(得分:2)

您可以在jQuery中使用:not(:last)函数。

gData.on('click', '.ranges ul li:not(:last)', function(e){
gFilter.find('form').submit();
});

答案 3 :(得分:0)

使用:

gData.on('click', '.ranges ul li', function(e){
    if ( !$(this).is(':last-child') ) {           //if this is not last child
        gFilter.find('form').submit();            //execute submit
    }
 });