任务目的

  • 在上一任务基础上继续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方法

 * 读取idsource的列表,获取其中城市名字及城市对应的空气质量

 * 返回一个数组,格式见函数中示例

 */

function getData() {

/*

  coding here

  */

/*

  data = [

    ["北京", 90],

    ["北京", 90]

    ……

  ]

  */

return data;

}

/**

 * sortAqiData

 * 按空气质量对data进行从小到大的排序

 * 返回一个排序后的数组

 */

function sortAqiData(data) {

}

/**

 * render

 * 将排好序的城市及空气质量指数,输出显示到idresort的列表中

 * 格式见ul中的注释的部分

 */

function render(data) {

}

function btnHandle() {

var aqiData = getData();

aqiData = sortAqiData(aqiData);

render(aqiData);

}

function init() {

// 在这下面给sort-btn绑定一个点击事件,点击时触发btnHandle函数

}

init();

</script>

</body>

</html>

任务注意事项

  • 实现简单功能的同时,请仔细学习JavaScript基本语法、事件、DOM相关的知识
  • 请注意代码风格的整齐、优雅
  • 代码中含有必要的注释
  • 建议不使用任何第三方库、框架
  • 示例代码仅为示例,可以直接使用,也可以完全自己重写

在线学习参考资料

基础JavaScript练习(一)总结

 

1、 JavaScript Objects

在JavaScript中,对象也是变量,用于存储数值,但是一个对象可以存储很多值,并且每个值以键值对的方式(name:value)存储。JavaScript中的name:value键值对被称为属性。

方法也可以存储在对象中,name:value,name为函数名,value为函数定义。

(1)  定义对象

eg: var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};

       (2)获取对象属性:

objectName.propertyName

或者

objectName["propertyName"]

(3)调用对象方法

  • objectName.methodName()

如果未加(),objectName.methodName将返回这个名字方法的定义。

2、 HTML DOM createElement() Method

createelement()方法创建一个指定名字的元素节点。

注意:createTextNode()方法创建一个文本节点。节点创建完成之后,使用element.appendChild()或者element.insertBefore()方法将它插入document中。

语法:

document.createElement(nodename)

参数:nodename,类型:字符串,想创建的元素姓名。

返回值:一个元素对象,代表创建的元素节点。

3、 HTML DOM createTextNode() Method

HTML元素通常由元素节点和文本节点组成,createTextNode()方法用于创建一个文本节点

语法:

document.createTextNode(text)

text:类型:字符串,表示文本节点中的文本。

返回值:文本节点对象。

4、 HTML DOM setAttribute() Method

setAttribute()方法,向一个元素添加一个属性,并给它一个特定的值。如果添加前该元素有这个属性,则此方法仅改变或设置属性值。

注意:虽然可以使用setAttribute()方法向一个元素添加样式,但是最好使用Style对象(Style对象代表一个单独的样式语句)的属性,这个方法可能覆盖其他css样式。

Badelement.setAttribute("style", "background-color: red;");

Good:element.style.backgroundColor = "red";

5、 HTML DOM appendChild() Method

appendChild()方法将一个节点作为最后一个子节点悬挂到另一个节点上。

语法:

node.appendChild(node)

node:类型:节点对象。想附加的节点。

返回值:一个节点对象,代表已附加的节点。

6、 HTML DOM insertBefore() Method

insertBefore()方法,将一个节点作为子节点插入到一个已经存在的节点之前。

语法:

node.insertBefore(newnode, existingnode)

newnode:类型:节点对象,想插入的新节点。

Existingnode:类型:节点对象,可选,已在document中的,想插入新节点之后的节点,如果没有指定时,将把新节点插入到最后。

返回值:一个节点对象,代表已插入的节点。

7、 HTML DOM removeChild() Method

removeChild()方法,从指定元素移除一个指定子节点。返回值为被移除的节点,如果要移除节点不存在,则返回null。

语法:

node.removeChild(node)

node:类型为:节点对象,要移除的节点

8、 已提交作业

代码地址:https://github.com/Nunawading2016/2017-IFE-Baidu/blob/master/task2-4

Doem地址:http://htmlpreview.github.io/?https://github.com/Nunawading2016/2017-IFE-Baidu/blob/master/task2-4/index.html

基础JavaScript练习(一)总结的更多相关文章

  1. 回归基础: JavaScript 变量提升

    from me: javascript的变量声明具有hoisting机制,它是JavaScript一个基础的知识点,也是一个比较容易犯错的点,平时在开发中,大大小小的项目都会遇到. 它是JavaScr ...

  2. js基础--javaScript数据类型你都弄明白了吗?绝对干货

    欢迎访问我的个人博客:http://www.xiaolongwu.cn 数据类型的分类 JavaScript的数据类型分为两大类,基本数据类型和复杂数据类型. 基本数据类型:Null.Undefine ...

  3. 基础JavaScript练习(三)总结

    任务目的 实践JavaScript数组.字符串相关操作 任务描述 基于任务四进行升级 将新元素输入框从input改为textarea 允许一次批量输入多个内容,格式可以为数字.中文.英文等,可以通过用 ...

  4. 基础JavaScript练习(二)总结

    任务目的 学习与实践JavaScript的基本语法.语言特性 练习使用JavaScript实现简单的排序算法 任务描述 基于上一任务 限制输入的数字在10-100 队列元素数量最多限制为60个,当超过 ...

  5. 零基础JavaScript编码(三)总结

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

  6. 零基础JavaScript编码(二)

    任务目的 在上一任务基础上继续JavaScript的体验 学习JavaScript中的if判断语法,for循环语法 学习JavaScript中的数组对象 学习如何读取.处理数据,并动态创建.修改DOM ...

  7. 零基础JavaScript编码(一)

    任务目的 JavaScript初体验 初步明白JavaScript的简单基本语法,如变量.函数 初步了解JavaScript的事件是什么 初步了解JavaScript中的DOM是什么 任务描述 参考以 ...

  8. 二、JavaScript语言--JS基础--JavaScript进阶篇--JS基础语法

    1.变量 定义:从字面上看,变量是可变的量:从编程角度讲,变量是用于存储某种/某些数值的存储器.我们可以把变量看做一个盒子,盒子用来存放物品,物品可以是衣服.玩具.水果...等. 命名:变量名字可以任 ...

  9. Ajax基础--JavaScript实现

    ajax原理 1.ajax 即“Asynchronous JavaScript and XML”(异步 JavaScript 和 XML),也就是无刷新数据读取. 通俗地讲就是:AJAX 通过在后台与 ...

随机推荐

  1. Codeforces Round #598 (Div. 3)E(dp路径转移)

    题:https://codeforces.com/contest/1256/problem/E 题意:给一些值,代表队员的能力值,每组要分3个或3个以上的人,然后有个评价值x=(队里最大值-最小值), ...

  2. VB6制作的自定义ocx控件

    下载后,解压缩,有一个TreeviewExplorer.ocx文件 在Excel的开发工具选项卡,点击插入ActiveX控件 VBA窗体,VB6窗体.VB.Net窗体都可以使用这个自定义控件的功能. ...

  3. Go-Micro框架入门教程(一)---框架结构

    Go语言微服务系列文章,使用golang实现微服务,这里选用的是go-micro框架,本文主要是对该框架的一个架构简单介绍. 1. 概述 go-micro是go语言下的一个很好的微服务框架. 1.服务 ...

  4. ADB命令-1

    1.adb -s 指定设备号(用于已连接多个设备时) 2.adb install -r -t xxx 安装程序 3.adb pull  设备目录   本地目录 复制文件命令 4.adb push 向设 ...

  5. [LC] 112. Path Sum

    Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all ...

  6. [LC] 242. Valid Anagram

    Given two strings s and t , write a function to determine if t is an anagram of s. Example 1: Input: ...

  7. Spring第一课:IOC控制反转,什么是反转,什么又是控制?

    前言 学习Spring第一课,就是认识IOC控制反转,要了解它还真得花一些功夫.今天主要理解透彻它的真谛,而不仅限于表面. 上道小菜 public class BusinessService { pr ...

  8. 用JSON报的一个错误java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntimeExcep

    以前在做项目的时候就曾接触过JSON的技术,但那个时候是项目经理把所有该配制的都配了,工具类也提供了,如何使用也跟我们说了,那个时候只是觉得很好用,倒没有研究过. 今天自己写了一个JSON的例子,可以 ...

  9. 关于angular跳转路由之后不能自动回到顶部的解决方法

    Question: angular2 scroll top on router change 当我们在第一个路由滑动到底部当我们点击导航跳转到另一个路由时页面没有回到顶部而是保持上一个路由的滚动位置, ...

  10. Java 中Enum的使用与分析

    https://www.cnblogs.com/softidea/p/3760235.html https://blog.csdn.net/qq_27093465/article/details/52 ...