我有一个包含许多对象的数组.
阵:
var activeMembers=[];
Run Code Online (Sandbox Code Playgroud)
上面数组中的DIV对象如下所示 - 每次添加一个:
<div id="mary" class="chatmember 1011"></div>
<div id="steven" class="chatmember 1051"></div>
<div id="adam" class="chatmember 1701"></div>
<div id="bob" class="chatmember 1099"></div>
<div id="peter" class="chatmember 1123"></div>
Run Code Online (Sandbox Code Playgroud)
有没有一种快速的方法可以通过AZ中的ID对数组中的DIV对象进行排序?
谢谢
jfr*_*d00 10
由于有很多愚蠢的实现被提议使用jQuery只是浪费资源,我会提出自己的.这只是数组中对象属性的直接javascript排序数组.为此,您只需将数组排序方法与自定义比较函数一起使用,该函数对id值进行alpha比较.根本没有理由或优势让jQuery参与其中.
activeMembers.sort(function(a, b) {
var aID = a.id;
var bID = b.id;
return (aID == bID) ? 0 : (aID > bID) ? 1 : -1;
});
Run Code Online (Sandbox Code Playgroud)
请注意,根据问题的要求,这会对数组中的div引用列表进行排序.它不会对页面布局中的对象进行排序.为此,您必须对引用列表进行排序,然后根据新的数组顺序重新排列页面中的div.
如果您可以依赖于在您自己的HTML中没有两个ID相同的事实(因为您永远不应该有两个具有相同ID的对象),您可以缩短并加快自定义排序功能,只需这样:
activeMembers.sort(function(a, b) {
return (a.id > b.id) ? 1 : -1;
});
Run Code Online (Sandbox Code Playgroud)