<!DOCTYPE> <html> <head> <meta charset="utf-8"> <title>IFE JavaScript Task 01</title> </head> <body> <ul id="source"> <li>北京空气质量:<b>90</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> </ul> <ul id="resort"> <!-- <li>第一名:北京空气质量:<b>90</b></li> <li>第二名:北京空气质量:<b>90</b></li> --> </ul> <button id="sort-btn">排序</button> <script type="text/javascript"> //通过元素匹配数组并提取其中需要的信息组成新的数组 function getData(){ var data=[]; var source=document.getElementById("source"); var oli=source.getElementsByTagName("li"); for (var i = 0; i <oli.length; i++) { data.push(oli[i].innerHTML.replace(/(.*)空气质量:<b>([0-9]*)<\/b>/,'$1 $2').split(' ')); } return data; } //将新数组data按照从大到小排序 function sortAqiData(data) { return data.sort(function(a,b){ return b[1]-a[1] }) } //将排序后的数组利用遍历写到指定位置 function render(data) { var resort = document.getElementById('resort'); data.forEach(function(item, index,array) { resort.innerHTML += '<li>第' + (index + 1) + '名:' + item[0] + '空气质量:' + '<b>' + item[1] + '</b></li>'; }); } //定义onclick的属性值 function btnHandle() { var aqiData = getData(); aqiData = sortAqiData(aqiData); render(aqiData); } //给按钮添加onclick属性和 值 function init() { var btn=document.getElementById("sort-btn"); btn.setAttribute("onclick","btnHandle()"); } init(); </script> </body> </html>
<--这个函数btnHandle()该怎么理解?-->
getDate()的作用是,将sourse里的数据,依次存在date[]的数组里面,这个函数涉及到了正则表达式,那部分可以先忽略;sortAqiDate()的作用是,将date数组里面的数据,按数字值从大到小排序,返回的是排好序的date数组;render()的作用就是在resort里将date数组里的数据按顺序innerHTML。。。。最后btnHandle()的作用就是把这上述三个函数依次调用了。。。