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

Make Javascript function ignores the last li to submit form

本文关键字:li 提交 表单 最后一个 Javascript 函数      更新时间:2023-09-26

我有以下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。我怎样才能让它忽略最后一个呢?

可以使用 :not() :last

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

$('body').on('click', '.ranges ul li:not(:last)', function(e){
    alert('clicked');
});
<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>

应该可以:

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

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

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

使用说明:

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
    }
 });