You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让带last类的Div在多列表排序后始终处于底部?

解决方案:固定指定元素在排序列表底部

问题回顾

现有多组独立列表,已实现每组内元素按字母排序,但需要让带.last类的元素始终留在列表底部,且该元素后续的.hidden元素也要跟随到底部,同时不能额外包裹列表内容。

实现方案

核心思路是把元素分成两类处理:先排序并追加普通元素(不带.last),再把目标元素(带.last)追加到容器末尾,不用修改原有DOM结构就能满足需求。

修改后的JavaScript代码如下:

$('.parent').each(function(_, parent) {
  // 处理不带last类的元素,按字母排序后追加到容器
  $('.sort:not(.last)', parent).sort(function(a, b) {
    return a.textContent.localeCompare(b.textContent);
  }).each((index, el) => {
      const hidden = $(el).next();
      $(el).appendTo(parent);
      if (hidden.hasClass('hidden')) {
          hidden.appendTo(parent);
      }
  });

  // 处理带last类的元素,直接追加到容器末尾
  $('.sort.last', parent).each((index, el) => {
      const hidden = $(el).next();
      $(el).appendTo(parent);
      if (hidden.hasClass('hidden')) {
          hidden.appendTo(parent);
      }
  });
});

$(".btn_expand").on('click', function () {
  $(this).next("div").toggle();
});

代码说明

  • 用.sort:not(.last)筛选出普通排序元素,按原逻辑排序后追加到容器
  • 单独处理.sort.last元素,直接追加到容器末尾,确保它们始终在底部
  • 保留原有.hidden元素跟随逻辑,避免展开按钮对应的隐藏内容错位

完整代码示例

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div class="parent">
  <div class="btn_expand sort">CCC</div>
  <div class="hidden">Hidden content shown by press CCC</div>
  <div class="btn_no_expand sort">EEE</div>
  <div class="btn_no_expand sort last">AAA</div>
  <div class="btn_no_expand sort">DDD</div>
  <div class="btn_expand sort">BBB</div>
  <div class="hidden">Hidden content shown by press BBB</div>
</div>

<br><br>

<div class="parent">
  <div class="btn_expand sort last">CCC</div>
  <div class="hidden">Hidden content shown by press CCC</div>
  <div class="btn_no_expand sort">EEE</div>
  <div class="btn_no_expand sort">AAA</div>
  <div class="btn_no_expand sort">DDD</div>
  <div class="btn_expand sort">BBB</div>
  <div class="hidden">Hidden content shown by press BBB</div>
</div>
.btn_expand{background:red;}  
.hidden{display: none;}
.last{background: green;}
$('.parent').each(function(_, parent) {
  $('.sort:not(.last)', parent).sort(function(a, b) {
    return a.textContent.localeCompare(b.textContent);
  }).each((index, el) => {
      const hidden = $(el).next();
      $(el).appendTo(parent);
      if (hidden.hasClass('hidden')) {
          hidden.appendTo(parent);
      }
  });

  $('.sort.last', parent).each((index, el) => {
      const hidden = $(el).next();
      $(el).appendTo(parent);
      if (hidden.hasClass('hidden')) {
          hidden.appendTo(parent);
      }
  });
});

$(".btn_expand").on('click', function () {
  $(this).next("div").toggle();
});

内容的提问来源于stack exchange,提问作者Vode

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 05:01:39