问答详情
源自:10-1 编程挑战

这个函数btnHandle()该怎么理解?

<!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()该怎么理解?-->

提问者:oldwan 2016-04-08 19:05

个回答

  • weibo_就叫Seven吧_0
    2016-04-09 15:05:24
    已采纳

    getDate()的作用是,将sourse里的数据,依次存在date[]的数组里面,这个函数涉及到了正则表达式,那部分可以先忽略;sortAqiDate()的作用是,将date数组里面的数据,按数字值从大到小排序,返回的是排好序的date数组;render()的作用就是在resort里将date数组里的数据按顺序innerHTML。。。。最后btnHandle()的作用就是把这上述三个函数依次调用了。。。