使用 javascript 对 html 列表进行排序

2023-11-23

我有一组三个列表项,我想在页面加载时自动从高到低显示它们。最好使用 jquery 或 javascript。

<ul class="list">
<li id="alpha">32</li>
<li id="beta">170</li>
<li id="delta">28</li>
</ul>

每个列表项都需要自己的 ID,因为它们都有单独的背景图像。这些数字必须是文本节点,以便用户可以编辑它们。


这可能是最快的方法,因为它不使用 jQuery:

function sortList(ul){
    var new_ul = ul.cloneNode(false);

    // Add all lis to an array
    var lis = [];
    for(var i = ul.childNodes.length; i--;){
        if(ul.childNodes[i].nodeName === 'LI')
            lis.push(ul.childNodes[i]);
    }

    // Sort the lis in descending order
    lis.sort(function(a, b){
       return parseInt(b.childNodes[0].data , 10) - 
              parseInt(a.childNodes[0].data , 10);
    });

    // Add them into the ul in order
    for(var i = 0; i < lis.length; i++)
        new_ul.appendChild(lis[i]);
    ul.parentNode.replaceChild(new_ul, ul);
}

调用该函数如下:

sortList(document.getElementsByClassName('list')[0]);

您可以以相同的方式对其他列表进行排序,如果您在列表类的同一页面上有其他元素,您应该给您的 ul 一个 id 并使用它来传递它。

JSFiddle 示例

Edit

既然你提到你希望它发生在页面加载上,我假设你希望它在 ul 位于 DOM 中之后尽快发生,这意味着你应该添加该函数sortList到页面的头部并在列表之后立即使用它,如下所示:

<head>
    ...
    <script type="text/javascript">
        function sortList(ul){
            var new_ul = ul.cloneNode(false);
            var lis = [];
            for(var i = ul.childNodes.length; i--;){
                if(ul.childNodes[i].nodeName === 'LI')
                    lis.push(ul.childNodes[i]);
            }
            lis.sort(function(a, b){
               return parseInt(b.childNodes[0].data , 10) - parseInt(a.childNodes[0].data , 10);
            });
            for(var i = 0; i < lis.length; i++)
                new_ul.appendChild(lis[i]);
            ul.parentNode.replaceChild(new_ul, ul);
        }
    </script>
</head>
<body>
    ...
    <ul class="list">
        <li id="alpha">32</li>
        <li id="beta">170</li>
        <li id="delta">28</li>
    </ul>
    <script type="text/javascript">
        !function(){
            var uls = document.getElementsByTagName('ul');
            sortList( uls[uls.length - 1] );
        }();
    </script>
    ...
</body>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 javascript 对 html 列表进行排序 的相关文章

  • Rails 上的 SASS 无效 CSS 错误

    我正在尝试使用http startbootstrap com stylish portfolio http startbootstrap com stylish portfolio但是 在我的 Rails 应用程序中 我在 vintage
  • Disqus:使用 jQuery 成功后更改标题

    Disqus 根据请求自动放置定义的标题 例如 添加新评论 我尝试在ready 上使用jquery更改它的值 dsq new post h3 text Paticipa con tu cuenta favorita 没有成功 我如何知道 d
  • HTML CSS 循环协助

    希望你能帮忙 我想知道您是否可以在循环中创建以下类型 你知道这是否可能吗 body background 000 DEMO SPECIFIC STYLES typewriter h1 color fff font family Bebas
  • Chrome 本机消息传递 - 为什么我会收到“找不到指定的本机消息传递主机”错误?

    根据 Chrome Native Messaging 文档 成功调用 connectNative 会返回一个端口 您可以使用该端口将消息发布到本机应用程序 Mac 应用程序 在我的例子中 nativeConnect 确实返回了一个有效的端口
  • Opera Mobile 9.7 Beta 设置焦点 [重复]

    这个问题在这里已经有答案了 我们使用手持式扫描仪将物品移入和移出库存 扫描仪运行一个 ASP 页 该页提交表单以移动项目 我们最近购买了一台运行 Windows Mobile 6 1 的新扫描仪 很快就意识到 Mobile IE 完全没用
  • 如何使用 jQuery 显示“忙”指示器?

    如何在网页中的特定点显示旋转的 忙 指示器 我想在 Ajax 请求开始 完成时启动 停止指示器 这真的只是显示 隐藏 gif 动画的问题 还是有更优雅的解决方案 您可以只显示 隐藏 gif 但您也可以将其嵌入到 ajaxSetup 中 以便
  • Meteor:即使设置了 ANDROID_HOME 也未设置

    操作系统 Ubuntu 14 04 框架 流星1 1 0 2 应用名称 Songofy 这是输出meteor install sdk android meteor install sdk android Found Android bund
  • ajax调用后如何停止刷新页面?

    ajax 调用后我无法停止刷新页面 我尝试过放置 e preventDefault 并返回 false 但我的页面又刷新了 我不知道代码有什么问题或者什么 请帮助我在ajax调用后停止刷新页面 解决这个问题对我来说会有很大的帮助 提前致谢
  • 当我尝试使用 jasmine 进行测试时,应用程序文件夹未在 Ext.appliation 中加载

    我正在尝试在我的应用程序 Ext js 5 中实现茉莉花以进行单元测试 为此 我创建了应用程序测试文件 Ext require Ext app Application Ext Loader setConfig enabled true Ex
  • 使用添加“title”属性换行符 到 JSX 元素

    我知道我可以在 HTML 中添加换行符title属性使用 10 但 React 避免了这一点 例如 这是一个 React 组件 其中包含一个标准的 未由 React 处理的组件title包含换行符的属性 并且可以在浏览器中看到效果 但是如果
  • 无法使用 Excel JavaScript API 设置 NumberFormat

    我正在使用 Excel Javascript API 在搜索文档后 仍然找不到我想要实现的解决方案 因此 我想将所有内容设置为数字格式 文本 这样 Excel 的自动格式设置就不会与任何单元格的内容混淆 不会删除前导零或更改日期格式 文档建
  • onDeviceReady 未在 PhoneGap hello world 应用程序中触发

    我正在尝试做一个简单的警报 测试 应用程序 但事件没有被触发 这是代码 function onLoad document addEventListener deviceready onDeviceReady false Cordova is
  • 将 ngModel 绑定到自定义指令

    所以我已经在这个问题上工作了一个星期了 但我似乎无法理解整个指令的事情 我读了很多帖子 揭秘指令 http www toptal com angular js angular js demystifying directives 指令 ht
  • 如何阻止用户重复单击 jQuery AJAX 调用?

    我有一个包含以下脚本的网页 JavaScript function LinkClicked var stage this id var stop ContentPlaceHolderMenu txtDate val var nDays Co
  • 使用 Javascript 从 HTML 表格输入单元格获取值

    我使用 Javascript 动态创建了一个 HTML 表 其中第一列由文本字段组成 第二列由输入字段组成 第三列由文本字段组成 效果很好 nrOfRows document getElementById myId value get nr
  • Web API 2.0 使用 pascalcase 模型接收驼峰式命名的 JSON 数据

    我正在尝试对我的 Web API 进行 PUT 调用 我在 WebApiConfig cs 中设置了以下内容 以处理以驼峰形式将数据发送回我的 Web 项目 config Formatters JsonFormatter Serialize
  • Tizen SDK:找不到变量:tizen

    我正在尝试使用 Tizen SDK 创建一个 Web 应用程序 当我启动应用程序时 一切都很好 但是当我在模拟器上按 后退 按钮时 没有任何反应 并且我看到一条消息 55435 js main js 9 ReferenceError 找不到
  • JQuery 设置动态最大宽度

    我不太擅长 jQuery 因此完整的代码解决方案将是理想的选择 该函数将 获取浏览器屏幕的 70 宽度 将该宽度转换为其相应的 px 值 设置最大宽度 mainContainer使用从转换 计算中获得的值 这是我要设置的容器的 CSS 样式
  • iOS 上 Safari 中的 shift 键

    有没有办法在javascript中判断手机键盘上是否按下了shift键 并将其与大写锁定 按两次shift键 区分开来 一些事实 首先 让我们看一下有关 iOS 键盘的一些事实 我假设您已经知道了 当您进入键盘模式时 shift键始终处于激
  • 构造函数可以返回什么值来避免返回 this ?

    确切的情况是什么 returnJavascript 中的语句可以返回除this当使用构造函数调用时new关键词 Example function Foo return something var foo new Foo 如果我没记错的话 如

随机推荐

  • Java HashMap 如何处理具有相同哈希码的不同对象?

    根据我的理解我认为 两个对象具有相同的哈希码是完全合法的 如果两个对象相等 使用 equals 方法 则它们具有相同的哈希码 如果两个对象不相等 那么它们不能具有相同的哈希码 我对么 现在 如果正确的话 我有以下问题 这HashMap内部使
  • 如何尽可能高效地处理大量并发磁盘写入请求

    假设以下方法被 net 4 应用程序中的不同线程调用数千次 处理这种情况的最佳方法是什么 了解磁盘是这里的瓶颈 但我希望 WriteFile 方法能够快速返回 数据可达几MB 我们是在谈论线程池 TPL 之类的吗 public void W
  • 如何覆盖在 Spark 中读取 DataFrame 的 parquet 文件

    这是我面临的问题的缩影 我遇到了错误 让我尝试在这里重现它 我正在保存一个DataFrame as a parquet 但是当我重新加载时DataFrame from parquet文件并再次保存为parquet 我收到错误 valuesC
  • lb 指令到底有什么作用?

    我即将进行考试 练习题之一是 假使 假设 t0包含值0x12121212 and t1包含 地址0x1000000 假设内存数据 从地址开始0x1000000 is 88 77 66 55 会有什么价值 t0执行以下代码后 lb t0 0
  • 为什么切片对象在Python中不可散列

    为什么 python 中的切片对象不可散列 gt gt gt s slice 0 10 gt gt gt hash s TypeError Traceback most recent call last
  • Bash 关联字典不起作用(声明:-A:无效选项)

    我已经遵循了每个 bash 字典示例 但没有一个起作用 我现在有了 CONFIG bin bash instance map dev project dev instance map stage project staging declar
  • 针对 switch 语句中的枚举进行编程,这是您的方法吗?

    看一下代码片段 这是我在针对枚举进行编码时通常所做的事情 我有一个带有 InvalidOperationException 的默认转义 我不使用 ArgumentException 或其派生类之一 因为编码是针对私有实例字段而不是传入参数
  • 有没有办法从 Firestore 中仅选择某些字段?

    我正在解决一个函数的性能问题 需要 15 秒才能响应 这会向 firebase 请求所有文档 ErrorID 0 问题是有很多文档 而且它们是非常大的对象 我只需要两个领域 Order and Amount 对于每个文档 有什么方法可以只请
  • 不使用 eval 的嵌套 shell 变量

    我可以摆脱吗eval这里 我正在尝试设置 current database由用户输入确定的适当变量 国家和操作 User input country es action sales Possible variables for curren
  • 如何安装 32 位和 64 位版本的 COM DLL 并“自动选择”?

    我们有一个 DLL COM 服务器 可以在 32 位和 64 位版本中正常编译 但 DLL 对 32 位版本和 64 位版本使用相同的 CLSID 和 AppID 这是可以的还是必须改变 我问这个问题是因为显然在 64 位机器上 我们无法同
  • 如何在 C# 中使用 Java 风格的 throws 关键字?

    在Java中 throws关键字允许方法声明它不会自行处理异常 而是将其抛出给调用方法 C 中有类似的关键字 属性吗 如果没有等效的 如何才能达到相同 或相似 的效果 操作人员正在询问C 相当于 Java 的throws clause 不是
  • 在后台请求 iPhone 位置?

    简单的问题 我有一个应用程序 以 30 秒的间隔记录用户位置 使用 NSTimer 它可以完美地工作 直到应用程序变为 非活动状态 并且 NStimer 停止 因此 我正在寻找保持定位间隔 30 秒 的选项 同时仍然能够记录相当准确的位置数
  • 打印 char 数组的十六进制表示形式[]

    我有一个 8 字节的数组 我正在尝试打印它的十六进制表示法 使用printf x array 我可以得到第一个字节并将其打印出来 但我得到了 0xffffff9b 或类似的东西 有没有办法获得没有 f 的符号 我想打印出每个元素 如下所示
  • 在 QGraphicsView 上绘制小部件(例如按钮)

    如何在 QGraphicsView 上绘制交互式小部件 例如 QButtons 和 Line Edits 例如 我在图像编辑应用程序中选择了图像上的一个区域 该应用程序使用 QGraphicsView 显示图像 并且我想用名称注释该区域 所
  • 更改可折叠工具栏标题的正确方法

    当我更改折叠的 collapsingToolbar 的标题时 标题不会更改 我尝试过 getSupportActionBar setTitle 和collapseToolbar setTitle 但没有帮助 告诉我 有什么问题吗 我相信th
  • 反应路由器,以编程方式导航时传递数据?

    我们可以使用导航到不同的路径 this props router push some path 有没有办法在导航时发送参数 对象 我还能想到其他选择 但不知道是否可以通过object有可能吗 我可以嵌入对象的 id 并从服务器重新获取对象
  • 写入后空白文件?

    所以我一直在尝试为我的一个朋友编写一个 Bukkit 插件 但由于某种原因配置生成不起作用 有问题的代码如下 我很乐意添加人们需要的任何代码来帮助我解决这个问题 当我运行该程序时 创建的配置文件最终变为空白 测试文件很好 我通过简单地注释掉
  • PHP 日语 echo 字符串变成问号

    我正在开发一个需要日语和英语的 php 网站 在大多数地方 我可以轻松地让日语正确显示 但如果我使用如下函数 则无法显示字符 回声 php 我得到 日本语 但如果我尝试这个 索引 php 我得到 有什么方法可以让我的回显文件以它可以读取的方
  • 单个 Web 应用程序的多个 DbContext 类。是好是坏?

    拥有多个是一个好习惯吗 XXX DbContextWeb 应用程序的每个主要部分的类 考虑到它是一个大型应用程序 数据库中至少有 50 个表 例如 MembershipContext BlogContext StoreContext 等 或
  • 使用 javascript 对 html 列表进行排序

    我有一组三个列表项 我想在页面加载时自动从高到低显示它们 最好使用 jquery 或 javascript ul class list li 32 li li 170 li li 28 li ul 每个列表项都需要自己的 ID 因为它们都有