在Javascript中按ID排序div

时间:2018-12-10 20:25:43

标签: javascript jquery

我有一堆div,我希望根据其ID从最低到最高进行排序。但是,ID是十进制数,最高为5DP。

它们看起来像这样:

username

我已经看到了这个问题:How to order divs by id in javascript?但是,当我将Askers示例更改为十进制数字时,它并不会为我排序div。

任何帮助将不胜感激,jQuery或JS都适合我。

非常感谢,

G

2 个答案:

答案 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 );
});

预览:http://jsfiddle.net/x7gesv68/4/