<!DOCTYPE> <html> <head> <meta charset="utf-8"> <title>IFE JavaScript Task 01</title> </head> <body> <ul id="source"> <li>北京空气质量:<b>40</b></li> <li>上海空气质量:<b>70</b></li> <li>天津空气质量:<b>80</b></li> <li>广州空气质量:<b>50</b></li> <li>深圳空气质量:<b>40</b></li> <li>福州空气质量:<b>32</b></li> <li>成都空气质量:<b>90</b></li> <li>常州空气质量:<b>95</b></li> </ul> <ul id="resort"> <li>第一名:北京空气质量:<b>90</b></li> <li>第二名:北京空气质量:<b>90</b></li> <li>第三名:北京空气质量:<b>90</b></li> </ul> <button id="sort-btn">排序</button> <script> window.onload=function(){ var ali=document.getElementById('source').getElementsByTagName('li'); var ab=document.getElementById('source').getElementsByTagName('b'); var arr=[]; for(var i=0;i<ab.length;i++){ arr.push([ali[i].firstChild.nodeValue,ab[i].innerHTML]); } function sortArr(arr){ for(var i = 0; i < arr.length; i++){ for(var j = 0; j < i; j++){ if(arr[i][1] >= arr[j][1]){ var o = arr[i]; arr[i] = arr[j]; arr[j] = o; } } } /*return arr;*/ } sortArr(arr); var btn=document.getElementById("sort-btn"); var re=document.getElementById('resort'); var ali2=re.getElementsByTagName('li'); var ab2=re.getElementsByTagName("b"); btn.onclick=function(){ for(var i=0;i<ali2.length;i++){ ali2[i].firstChild.nodeValue="第一名:"+arr[i][0]; ab2[i].firstChild.nodeValue=arr[i][1]; } } } </script> </body> </html>
上面这一串就是实现一个获得数据,然后塞进一个数组排序再显示的功能,但是数组不是单纯的按数字大小排序的,如果给个像110这样的数,那排序就乱了。
知道如果一般数组的话可以按sort(function(a,b){return a-b;});解决,但不明白原理,因为我上面的这个是数组套数组,试着写了几次没有成功,请问如何能够在这个基础上按数字大小排序,谢谢!
相关分类