Our supersheet
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Our supersheet</title>
<link href="https://fonts.googleapis.com/css?family=Faster+One" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="style.css">
</head> <body>
<header > </header><!-- /header --> <section> </section>
<script src="script/main.js"> </script>
</body>
</html>
style.css
/* || general styles */ html {
font-family: 'helvetica neue', helvetica, arial, sans-serif;
} body {
width: 800px;
margin: 0 auto;
} h1, h2 {
font-family: 'Faster One', cursive;
} /* header styles */ h1 {
font-size: 4rem;
text-align: center;
} header p {
font-size: 1.3rem;
font-weight: bold;
text-align: center;
} /* section styles */ section article {
width: 33%;
float: left;
} section p {
margin: 5px 0;
} section ul {
margin-top:;
} h2 {
font-size: 2.5rem;
letter-spacing: -5px;
margin-bottom: 10px;
}
main.js
var header = document.querySelector('header');
var section = document.querySelector('section'); var requestURL = 'https://mdn.github.io/learning-area/javascript/oojs/json/superheroes.json';
var request = new XMLHttpRequest();//API,创建请求,只需要更新小部分而无需加载整个页面
request.open('GET', requestURL);//初始化请求,get--HTTP方法
request.responseType = 'text';//响应类型
request.send();//send方法,发送请求 request.onload = function() {//request,声明的对象;onload,自定义的方法
var superHeroesText = request.response;//response,属性
var superHeroes = JSON.parse(superHeroesText);
populateHeader(superHeroes);//自定义函数,调用
showHeroes(superHeroes);//superHeroes作用域在function,基于json的js对象
}
/**
* [populateHeader description]
* @param {[type]} jsonObj [description]
* @return {[type]} [description]
*/
function populateHeader(jsonObj) {//函数定义,形参
var myH1 = document.createElement('h1');//声明变量myH1,赋值h1元素
myH1.textContent = jsonObj['squadName'];//文本内容属性,赋值squadName对象的属性
header.appendChild(myH1);//header结点,增加一个myH1子节点,将其附加到标题appendChild() var myPara = document.createElement('p');//
myPara.textContent = 'Hometown: ' + jsonObj['homeTown'] + ' // Formed: ' + jsonObj['formed'];//把对象home Town和formed属性的lianjiezifuc
header.appendChild(myPara); }
/**
* [showHeroes description]
* @param {[type]} jsonObj [description]
* @return {[type]} [description]
*/
function showHeroes(jsonObj) {//创建并显示超级英雄卡
var heroes = jsonObj['members']; for (var i = 0; i < heroes.length; i++) {//members数组对象;创建了几个新元素article、h2。。。。
var myArticle = document.createElement('article');
var myH2 = document.createElement('h2');
var myPara1 = document.createElement('p');
var myPara2 = document.createElement('p');
var myPara3 = document.createElement('p');
var myList = document.createElement('ul'); myH2.textContent = heroes[i].name;
myPara1.textContent = 'Secret identity: ' + heroes[i].secretIdentity;
myPara2.textContent = 'Age: ' + heroes[i].age;
myPara3.textContent = 'Superpowers:';//值为数组,又用一个循环处理 var superPowers = heroes[i].powers;//嵌套循环,
for (var j = 0; j < superPowers.length; j++) {
var listItem = document.createElement('li');
listItem.textContent = superPowers[j];
myList.appendChild(listItem);
} myArticle.appendChild(myH2);//在myArticle中增加子节点,把获取的值显现在html中
myArticle.appendChild(myPara1);
myArticle.appendChild(myPara2);
myArticle.appendChild(myPara3);
myArticle.appendChild(myList); section.appendChild(myArticle);//把myArticle的值放入section
}
}
json文件(https://mdn.github.io/learning-area/javascript/oojs/json/superheroes.json)
{
"squadName" : "Super hero squad",
"homeTown" : "Metro City",
"formed" : 2016,
"secretBase" : "Super tower",
"active" : true,
"members" : [
{
"name" : "Molecule Man",
"age" : 29,
"secretIdentity" : "Dan Jukes",
"powers" : [
"Radiation resistance",
"Turning tiny",
"Radiation blast"
]
},
{
"name" : "Madame Uppercut",
"age" : 39,
"secretIdentity" : "Jane Wilson",
"powers" : [
"Million tonne punch",
"Damage resistance",
"Superhuman reflexes"
]
},
{
"name" : "Eternal Flame",
"age" : 1000000,
"secretIdentity" : "Unknown",
"powers" : [
"Immortality",
"Heat Immunity",
"Inferno",
"Teleportation",
"Interdimensional travel"
]
}
]
}
结果如下:https://mdn.github.io/learning-area/javascript/oojs/json/heroes-finished-json-parse.html
Our supersheet的更多相关文章
随机推荐
- CodeForces 1105E
题目链接 std:meet in the middle 首先把所有的点分成两部分,设\(f_i\)为前半部分在点集\(i\)中选出的最大独立集,\(g\)为在后半部分选.这个可以在\(O(2^{m/2 ...
- php能干什么?
什么是cookies 简单的说,Cookie就是服务器暂存放在你计算机上的一笔资料,好让服务器用来辨认你的计算机.当你在浏览网站的时候,Web服务器会先送一小小资料放在你的计算机上,Cookie 会帮 ...
- 事务(Transaction)
1.演示转账的功能:(1)创建一张表示学生表表 CREATE TABLE student( id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50), ac ...
- UOJ 171 【WC2016】挑战NPC
一开始还真没想到是一般图匹配这种模型(毕竟才会的带花树) 把每一个盒子拆成3个,每一个可以放置进它的小球分别向这三个点连边,然后这三个点在连成一个三元环,最终答案就是小球数目-匹配数. 由于是一般图, ...
- JS + flash 复制
js代码ZeroClipboard组件制作复制剪切板复制粘贴文字内容,一键即可复制粘贴文字内容.兼容各大主流浏览器firefox,,Chrome,IE等. 演示代码 如下: <script ty ...
- CTO详细讲解海量日志处理ELK
ELK实时日志分析平台之Elasticsearch简介 Elasticsearch是一个高度灵活的开源全文检索和分析引擎.它能够迅速(几乎是实时地)地存储.查找和分析大规模数据.通常被用在有复杂的搜索 ...
- eclipse Git配置
Git 1:选择git 2:下载对应版本 安装 Git常用命令: 显示信息类命令 git ls-files -u 显示冲突的文件,-s是显示标记为冲突已解决的文件 git diff 对比工作区和st ...
- Java 类及其组成可使用的修饰符
2017-11-04 21:51:04 类: 默认,public(一个.java文件只能有一个public类),final,abstract 自己定义,public居多 不允许使用static,pri ...
- 雷林鹏分享:Ruby 安装 - Windows
Ruby 安装 - Windows 下面列出了在 Windows 机器上安装 Ruby 的步骤. 注意:在安装时,您可能有不同的可用版本. 下载最新版的 Ruby 压缩文件.请点击这里下载. 下载 R ...
- 1月21日 Reference Data Type 数据类型,算法基础说明,二分搜索算法。(课程内容)
Reference Datat Types 引用参考数据类型 -> 组合数据类型 Array, Hash和程序员自定义的复合资料类型 组合数据的修改: 组合数据类型的变量,不是直接存值,而是存一 ...