亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

這個函數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()該怎么理解?-->

正在回答

1 回答

getDate()的作用是,將sourse里的數據,依次存在date[]的數組里面,這個函數涉及到了正則表達式,那部分可以先忽略;sortAqiDate()的作用是,將date數組里面的數據,按數字值從大到小排序,返回的是排好序的date數組;render()的作用就是在resort里將date數組里的數據按順序innerHTML。。。。最后btnHandle()的作用就是把這上述三個函數依次調用了。。。

1 回復 有任何疑惑可以回復我~
#1

oldwan 提問者

這個是百度前端春季班的作業,btnHandle() 是作業中就給出來的,其他四個函數是我自己(看了別人作業的前提下)寫的。大俠,最后一句 依次調用 能再說詳細一點么? orz
2016-04-09 回復 有任何疑惑可以回復我~
#2

weibo_就叫Seven吧_0 回復 oldwan 提問者

這個要怎么解釋,我感覺注釋的挺清楚。。。首先,聲明一個變量aqiData,獲取getData()函數的返回值,即一個數組,然后把aqiData作為參數傳遞給 sortAqiData()函數,進行數組排序,返回值還是保存在aqiData中(即獲得一個有序的數組),最后把這個有序的數組aqiData作為參數傳遞給render()函數,render函數在接收到參數后,循環遍歷數組,以innerHTML的方式,在瀏覽器顯示出來。。。本來要依次調用這三個函數,現在整合在一個函數里面,方便調用。。。不知道這是不是你要的答案?
2016-04-09 回復 有任何疑惑可以回復我~
#3

oldwan 提問者

非常感謝!
2016-04-11 回復 有任何疑惑可以回復我~
#4

oldwan 提問者 回復 weibo_就叫Seven吧_0

非常感謝,已經理解了你的解釋,再追問一下,如果要依次調用這幾個函數 該怎么分開寫?
2016-04-11 回復 有任何疑惑可以回復我~
#5

weibo_就叫Seven吧_0 回復 oldwan 提問者

這個,我也算新手,如果不整合成一個函數調用,要我寫就是嵌套調用。。。。意思和那個是一樣的。。。函數這個東西一看函數干了啥,二看返回值是什么。。。我估計你可能對返回值的概念不是很清楚 function init() { var btn=document.getElementById("sort-btn"); btn.setAttribute("onclick","render(sortAqiData(getData()))"); }
2016-04-11 回復 有任何疑惑可以回復我~
查看2條回復

舉報

0/150
提交
取消
JavaScript進階篇
  • 參與學習       468832    人
  • 解答問題       22582    個

本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界

進入課程

這個函數btnHandle()該怎么理解?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號