如果第一列显示相等的值,如何使用第二列进行排序

问题描述 投票:1回答:1

我们有一张表格显示团队排名。

enter image description here

现在我们正在使用jQuery基于点进行排序 - >“PTS”但是有些情况如上图中点数相等(比如最后两个团队)在这种情况下看谁应该先行我们必须看看F栏和在这种情况下“迪拜种马”应该高于“阿布扎比首都”。

我们的代码目前是这样的:

<script type="text/javascript">
    $(document).ready(function(){
        $('div.standing table>tbody > tr:not(:first-child)').sort(function (a, b) {
            return +$('td:eq(5)', b).text() > +$('td:eq(5)', a).text();
        }).appendTo('tbody');
    });
</script>

我们有桌子

<div class="standing">
    <table class="uppercased">
        <tr>
            <th style="width:26%">teams</th>
            <th style="width:6%">gp</th>
            <th style="width:6%">w</th>
            <th style="width:6%">l</th>
            <th style="width:6%">t</th>
            <th style="width:6%">pts</th>
            <th style="width:6%">f</th>
            <th style="width:6%">a</th>
            <th style="width:8%">Standing</th>
            <th style="width:8%">strk</th>
        </tr>

跟下面类似吧。任何人都可以帮助调整jQuery?

网址:https://www.eafl.ae/standing?division=varsity

谢谢。

javascript jquery
1个回答
2
投票

你可以做一个if条件。如果点相等,请使用f列进行排序。

这是一个片段。

$(function() {

  $('div.standing table>tbody > tr:not(:first-child)').sort(function(a, b) {
    if (+$('td:eq(5)', b).text() != +$('td:eq(5)', a).text()) // Check if PTS column is not equal
      return +$('td:eq(5)', b).text() > +$('td:eq(5)', a).text(); // Use PTS column since they are not equal
    else
      return +$('td:eq(6)', b).text() > +$('td:eq(6)', a).text(); // Sincne PTS column are equal, use the f column

  }).appendTo('tbody');

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="standing">
  <table class="uppercased">
    <tr>
      <th style="width:26%">teams</th>
      <th style="width:6%">gp</th>
      <th style="width:6%">w</th>
      <th style="width:6%">l</th>
      <th style="width:6%">t</th>
      <th style="width:6%">pts</th>
      <th style="width:6%">f</th>
      <th style="width:6%">a</th>
      <th style="width:8%">Standing</th>
      <th style="width:8%">strk</th>
    </tr>
    <tr>
      <td style="width:26%">Team 1</td>
      <td style="width:6%"></td>
      <td style="width:6%"></td>
      <td style="width:6%"></td>
      <td style="width:6%"></td>
      <td style="width:6%">3</td>
      <td style="width:6%">7</td>
      <td style="width:6%"></td>
      <td style="width:8%"></td>
      <td style="width:8%"></td>
    </tr>
    <tr>
      <td style="width:26%">Team 1</td>
      <td style="width:6%"></td>
      <td style="width:6%"></td>
      <td style="width:6%"></td>
      <td style="width:6%"></td>
      <td style="width:6%">12</td>
      <td style="width:6%">86</td>
      <td style="width:6%"></td>
      <td style="width:8%"></td>
      <td style="width:8%"></td>
    </tr>
    <tr>
      <td style="width:26%">Team 1</td>
      <td style="width:6%"></td>
      <td style="width:6%"></td>
      <td style="width:6%"></td>
      <td style="width:6%"></td>
      <td style="width:6%">3</td>
      <td style="width:6%">33</td>
      <td style="width:6%"></td>
      <td style="width:8%"></td>
      <td style="width:8%"></td>
    </tr>
  </table>
</div>
© www.soinside.com 2019 - 2024. All rights reserved.