javascript - 按数据属性顺序循环元素
问题描述
假设我有如下 HTML 元素
<span class="active" data-id="3"> Test 3 </span>
<span class="active" data-id="1"> Test 1 </span>
<span class="active" data-id="2"> Test 2 </span>
$(".active"].each(function(index,item){
var val = $(item).data("id");
console.log(val);
});
这将输出
3
1
2
无论如何我们可以根据 data 属性对这个循环进行排序,并通过 order 或 Data 属性或其他方式获取元素,以便输出
1
2
3
谢谢你。
解决方案
您需要使用“排序”高阶数组方法。排序 MDN 参考
const elements = Array.from(document.querySelectorAll('[data-id]'))
const sorted = elements.sort((firstEle, secondEle) => {
const firstId = firstEle.dataset.id
const secondId = secondEle.dataset.id
return firstId > secondId
})
console.log(sorted)
推荐阅读
- react-native - 如何在本机反应中发送带有正文或内容的短信:expo
- python - 如何根据python中特定方法的最大值从一组对象中选择一个对象
- python - 如何使用 feedparser 解析具有多个页面的 RSS 提要
- php - 路线未定义。(拉拉维尔)
- sql-server - TSQL通过排除某些表的数据创建备份
- asp.net - 不同应用程序中的两个不同用户登录问题
- python - 在云 VM 中使用 gunicorn 部署应用程序时出现“Errno 5- 输入/输出错误”
- ionic-framework - 如何创建 php 脚本以在 ionic 应用程序中发送电子邮件
- android - 使用 Android Management API 创建策略 - 快速入门 Colab
- ios - 在 UIWindow 上添加的视图中添加手势识别器