任务目的

  • 在上一任务基础上继续JavaScript的体验
  • 接触一下JavaScript中的高级选择器
  • 学习JavaScript中的数组对象遍历、读写、排序等操作
  • 学习简单的字符串处理操作

任务描述

  • 参考以下示例代码,读取页面上已有的source列表,从中提取出城市以及对应的空气质量
  • 将数据按照某种顺序排序后,在resort列表中按照顺序显示出来
<!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><li>第三名:北京空气质量:<b>90</b></li>--></ul><button id="sort-btn">排序</button><script type="text/javascript">/*** getData方法* 读取id为source的列表,获取其中城市名字及城市对应的空气质量* 返回一个数组,格式见函数中示例*/
function getData() {/*coding here*//*data = [["北京", 90],["北京", 90]……]*/return data;}/*** sortAqiData* 按空气质量对data进行从小到大的排序* 返回一个排序后的数组*/
function sortAqiData(data) {}/*** render* 将排好序的城市及空气质量指数,输出显示到id位resort的列表中* 格式见ul中的注释的部分*/
function render(data) {}function btnHandle() {var aqiData = getData();aqiData = sortAqiData(aqiData);render(aqiData);
}function init() {// 在这下面给sort-btn绑定一个点击事件,点击时触发btnHandle函数}init();</script>
</body></html>

HTML:
<!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><li>第三名:北京空气质量:<b>90</b></li>--></ul><button id="sort-btn">排序</button><script type="text/javascript">var arr = [["一"],["二"],["三"],["四"],["五"],["六"],["七"],["八"],["九"],["十"]];/*** getData方法* 读取id为source的列表,获取其中城市名字及城市对应的空气质量* 返回一个数组,格式见函数中示例*/
function getData() {/*coding here*//*data = [["北京", 90],["北京", 90]……]*/var data = [];var ul_1 = document.getElementById("source");var li_1 = ul_1.getElementsByTagName("li");for(var i = 0;i<li_1.length;i++){var li = li_1[i];var city = li.innerHTML.split(":")[0];//冒号要用中文的:,因为要跟随原文的符号。var num = li.innerText.split(":")[1];data.push([city,num]);}return data;}/*** sortAqiData* 按空气质量对data进行从小到大的排序* 返回一个排序后的数组*/
function sortAqiData(data) {data.sort(function(a,b){return a[1] - b[1];})return data;
}/*** render* 将排好序的城市及空气质量指数,输出显示到id位resort的列表中* 格式见ul中的注释的部分*/
function render(data) {var ul_2 = document.getElementById("resort");for(var i = 0;i<data.length; i++){var li_2 = document.createElement("li");li_2.innerHTML = "第"+arr[i] +"名:" + data[i][0]+ ":" + data[i][1];ul_2.appendChild(li_2);}
}function btnHandle() {var aqiData = getData();aqiData = sortAqiData(aqiData);render(aqiData);
}function init() {// 在这下面给sort-btn绑定一个点击事件,点击时触发btnHandle函数var btn = document.getElementById("sort-btn");btn.addEventListener("click",function(){btnHandle();btn.disabled = "true";})}init();</script>
</body>
</html>
												

IFE_js_task03相关推荐

最新文章

  1. AJAX学习基础:简单介绍数据岛使用方法
  2. Nature: 拟南芥微生物组功能研究1培养组学—高通量细菌分离培养鉴定
  3. ES6/04/严格模式,开启严格模式,严格模式与普通模式对比发生了那些变化,高阶函数,闭包函数,递归函数,递归实例(1,阶乘,2,斐波那契数列,3,根据id返回对应数据对象),浅拷贝和深拷贝
  4. python类的命名空间_Python之关于类变量的两种赋值区别详解
  5. 朗沃20140424
  6. Docker---DockerFile搭建的最简单的jsp应用
  7. 【网络】Padavan 路由器固件设置打印机服务器
  8. 炫龙dcpro黑苹果_毁灭者DC W650DC装黑苹果心得
  9. 电脑查看wifi密码
  10. 关于什么是AndroidX(一)
  11. 后端开发工程师不懂这些就危险了
  12. 玉米社:SEM竞价推广转化成本高?做好细节转化率蹭蹭往上涨
  13. Android游戏开发教程------(绘制屏幕)
  14. Android 各版本对应的SDK版本
  15. 一文了解复旦大学NLP实验室的14篇EMNLP 2022长文内容
  16. 80年代后最佳阵容之巴西篇
  17. 下厨房用过那些 slogan
  18. 动词常见三种变形方式总结
  19. 电子邮件服务器限制匿名,匿名(垃圾)邮件的根源—网络上几乎所有服务器都不可避免的“漏洞-站长资讯中心...
  20. linux—wget安装redis

热门文章

  1. centos7使用rdo安装openstack遇到的问题
  2. 绕线机算法模型(Simulink仿真验证+PLC代码实现)
  3. Traefik-ingress和Nginx-ingress对比
  4. [H5]HTML5样式、链接和表格
  5. 00 OpenCV环境搭建(Win10+Opencv3.1+VS2015企业版)
  6. java 架构师课程体系
  7. 微信小程序中如何实现微信支付
  8. 阿里巴巴公开大数据打假模式
  9. Android 再按一次退出程序(模拟Home键退出)
  10. Ubuntu 20.04 关闭鼠标加速