我有一堆div,我希望根据其ID从最低到最高进行排序。但是,ID是十进制数,最高为5DP。
它们看起来像这样:
username
我已经看到了这个问题:How to order divs by id in javascript?但是,当我将Askers示例更改为十进制数字时,它并不会为我排序div。
任何帮助将不胜感激,jQuery或JS都适合我。
非常感谢,
G
答案 0 :(得分:1)
选择.children
格中的#main
,然后通过提取每个sort()
并比较差异来id
,然后将它们附加到#main
以便它们在DOM中排好序。 -
函数中的sort
会将字符串id
自动转换为数字:
const main = document.querySelector('#main');
const divs = [...main.children];
divs.sort((a, b) => a.id - b.id);
divs.forEach(div => main.appendChild(div));
<div id="main">
<div id="1.6125">1.6125</div>
<div id="1.585">1.585</div>
<div id="1.60125">1.60125</div>
<div id="1.59125">1.59125</div>
<div id="1.62625">1.62625</div>
</div>
答案 1 :(得分:-1)
问题在于其他帖子如何比较ID。
尝试一下:
var main = document.getElementById( 'main' );
[].map.call( main.children, Object ).sort( function ( a, b ) {
return +a.id - +b.id;
}).forEach( function ( elem ) {
main.appendChild( elem );
});