<!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的更多相关文章

随机推荐

  1. [noip模拟题]合理种植

    [问题描述] 大COS在氯铯石料场干了半年,受尽了劳苦,终于决定辞职.他来到表弟小cos的寒树中学,找到方克顺校长,希望寻个活干. 于是他如愿以偿接到了一个任务…… 美丽寒树中学种有许多寒树.方克顺希 ...

  2. CEF之CefSettings设置locale

    参考:https://blog.csdn.net/xiezhongyuan07/article/details/84402083 在开发过程遇到一个问题,CEF加载一个静态页面,然后在静态页面上有一个 ...

  3. Mysql数据库基础知识

    什么是Mysql数据库 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司.MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQ ...

  4. Luogu P1533 可怜的狗狗

    题目链接:https://www.luogu.org/problemnew/show/P1533 没人写$fhq\ treap$做法,那我就补一篇qwq 看到这题第一时间想主席树,然后发现我还没学主席 ...

  5. js ajax跨域

    一般情况后台返回... 也就是说,无论数据本身是什么数据类型,数据,对象,都是以字符串形式返回的. 如何把字符串化成相应对象. 如: var s='{"left":100}' co ...

  6. NYOJ 116 士兵杀敌(二)(二叉索引树)

    http://acm.nyist.net/JudgeOnline/problem.php?pid=116 题意: 南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的. 小工是南将军手下的 ...

  7. Java 打开Excel,往Excel中存入值,保存的excel格式分别是xls和xlsx

    https://mirrors.cnnic.cn/apache/poi/xmlbeans/release/src/ package Excel; import org.apache.poi.hssf. ...

  8. 怎么彻底删除2345的各种顽固Process

    清晨打开电脑,都是2345的不良新闻,心情不美美哒 2345如何卸载? “C:\Windows\System32\drivers”目录删除Mslmedia.sys 开始-运行-cmd输入“sc del ...

  9. Github客户端操作

    Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理.作为一个程序员,我们需要掌握其用法. 作为开源代码库以及版本控制系统,Github目前拥有140 ...

  10. Python将某文件夹及其子文件夹下某种格式的文件移动到另一个指定的文件下

    主要是理解好上面的1~3点的内容,理解三个返回值所代表的意思.如果不清楚的话,可以在代码的for循环的第一句注释输出看看各个代表的是什么 再者就是对 shutil.copy(file_path,new ...