<!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;});解决,但不明白原理,因为我上面的这个是数组套数组,试着写了几次没有成功,请问如何能够在这个基础上按数字大小排序,谢谢!
添加回答
举报
0/150
提交
取消