首页 > 解决方案 > Jquery从循环中跳过最后两行

问题描述

我有一个表,我想从循环中跳过最后两行,我写了以下内容,它正在跳过最后一行。有没有办法处理 jquery 函数?

$("#emp tr").not(':last').each(function () { });

$(document).ready(function() {

  $("#btnSave").click(
    function() {
      var result = DisableClick();
      alert(result);
    }
  );
});

function DisableClick() {
  var status = false;
  $("#emp tr").not(':last').each(function() {
    var status = $(this).find('td:nth-child(3)').text();
    if (status === 'Yes') {
      moduleCompleted = true;
      return true;
    }
  });
  return moduleCompleted;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table id="emp" style="width:100%">
  <tr>
    <th>Firstname</th>
    <th>Lastname</th>
    <th>Status</th>
  </tr>
  <tr>
    <td>Jill</td>
    <td>Smith</td>
    <td>Yes</td>
  </tr>
  <tr>
    <td>Eve</td>
    <td>Jackson</td>
    <td>Yes</td>
  </tr>
  <tr>
    <td>Last1</td>
    <td>Last1</td>
    <td></td>
  </tr>
  <tr>
    <td>Last</td>
    <td>Last</td>
    <td></td>
  </tr>
</table>
<button id="btnSave">Save Click</button>

标签: jquery

解决方案


用于.slice()按索引获取一系列元素。您可以使用负索引从末尾开始计数。

$(document).ready(function() {

  $("#btnSave").click(
    function() {
      var result = DisableClick();
      alert(result);
    }
  );
});

function DisableClick() {
  var status = false;
  $("#emp tr").slice(0, -2).each(function() {
    var status = $(this).find('td:nth-child(3)').text();
    if (status === 'Yes') {
      moduleCompleted = true;
      return true;
    }
  });
  return moduleCompleted;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table id="emp" style="width:100%">
  <tr>
    <th>Firstname</th>
    <th>Lastname</th>
    <th>Status</th>
  </tr>
  <tr>
    <td>Jill</td>
    <td>Smith</td>
    <td>Yes</td>
  </tr>
  <tr>
    <td>Eve</td>
    <td>Jackson</td>
    <td>Yes</td>
  </tr>
  <tr>
    <td>Last1</td>
    <td>Last1</td>
    <td></td>
  </tr>
  <tr>
    <td>Last</td>
    <td>Last</td>
    <td></td>
  </tr>
</table>
<button id="btnSave">Save Click</button>

但不是像这样硬编码索引,我建议你给你想要处理的行一个类,并在选择器中使用它。或将表格拆分为单独theadtbody、 和tfoot部分,然后使用#emp tbody tr选择行。


推荐阅读