javascript - 对 document.getElementsByClassName 进行排序

标签 javascript object

现在在我的代码中,我有一个动态构建的表,然后用户将一些数据输入到表中的字段中。之后,我想向用户提供根据该字段对列表进行排序的机会。我想做的是使用 document.getElementsByClassName 获取所有值字段,然后对它们进行排序,但维护对象数据,如下所示。

var posts = document.getElementsByClassName('data');
posts.values.sort();  // I'd like to sort the array by the value of the html objects
for(i=0;i<posts.length;i++){
    //modify table order
}

最佳答案

您需要先将 HTMLCollection 转换为数组,然后再排序。

var posts = document.getElementsByClassName('data');
var arr = [].slice.call(posts); // convert HTMLColleciton to Array
arr.sort();

编辑:Sort 将函数作为参数,允许您根据数组的属性进行排序

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

关于javascript - 对 document.getElementsByClassName 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30362883/

相关文章:

javascript - 为什么匿名函数可以访问定义它的函数中的变量?

javascript - KnockoutJS 具有自定义绑定(bind)的类似 Accordion 的行为

javascript - Vue 的 Monaco 编辑器生成大量 .js 文件

javascript - Angular js在数据出现在表格上之前从数据中删除逗号,],“

javascript - 比较两个包含对象的数组,包括其他对象、数组等

Javascript将4个数组的值合并到一个对象中

javascript - Blob 构造函数浏览器兼容性

javascript - 如何在不使用 new 的情况下创建函数并调用其方法,类似于 jQuery $?

javascript - 我怎样才能像 javascriptobfuscator.com 这样通过 php 打包 javascript

javascript - 在不知道属性名称的情况下访问 JavaScript 的对象属性