jquery - 如何对包含数字内容的 <li> 列表进行排序(排序)?

标签 jquery list sorting html-lists

我有一个动态创建的列表如下:

<ul>
  <li>20</li>
  <li>10</li>
  <li>5</li>
  <li>3</li>
  <li>32</li>
  <li>25</li>
  <li>6</li>
  <li>12</li>
  <li>8</li>
</ul>

是否可以使用 jQuery 来订购此列表?我需要它从低到大排序,如下所示:

<ul>
  <li>3</li>
  <li>5</li>
  <li>6</li>
  <li>8</li>
  <li>10</li>
  <li>12</li>
  <li>20</li>
  <li>25</li>
  <li>32</li>
</ul>

最佳答案

下面应该可以解决问题:

$(function() {
  $('button').click(function() {
    var liContents = [];
    $('ul li').each(function() {
      liContents.push(parseInt($(this).text(), 10));
    });
    liContents.sort(numOrdDesc);
    $('ul li').each(function() {
      $(this).text(liContents.pop());
    });
  });
});

function numOrdDesc(a, b) {
  return (b - a);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
  <li>20</li>
  <li>10</li>
  <li>5</li>
  <li>3</li>
  <li>32</li>
  <li>25</li>
  <li>6</li>
  <li>12</li>
  <li>8</li>
</ul>

<button>Sort</button>

关于jquery - 如何对包含数字内容的 <li> 列表进行排序(排序)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10215341/

相关文章:

php - 按 ID 提取记录时,如何按日期转到下一条记录?

jquery 计算 ul 内的 li 元素 -> 长度?

javascript - 当父 div 返回 false 时,文件输入的默认操作消失

python - 将当前元素与列表中的下一个元素合并

list - 将列表附加到 Haskell 中的列表列表中?

java - 在 Java 中对二维字符串数组进行排序

javascript - 为什么窗口的宽度为空?

javascript - 正则表达式 : how to limit max number of integers in an alphanumeric field

list - NetLogo - 将单个值添加到列表列表

arrays - Swift 3 - 检查数组中是否存在字符串并对其进行排序