JavaScript高级

1、js的函数

(1)在java里面定义方法

public void/int 方法名称(参数列表) {

方法体和返回值;

}

 

(2)在js里面定义函数有三种方式

第一种:使用关键字 function 方法名称(参数列表) { 方法体和返回值 }

* 注意一:参数列表,不需要写类型(var),直接写参数名称

* 注意二:返回值,根据实际需要可以有也可以没有

* 代码

function test1() {

alert("123456");

}

//test1();

//实现两个数的相加

function add1(a,b) {

var sum = a+b;

return sum;

}

alert(add1(2,3));

 
  1. <html>
  2. <head>
  3. <title>html示例</title>
  4. </head>
  5.  
  6. <body>
  7.  
  8.  
  9. </body>
  10. <script type="text/javascript">
  11. //第一种方式创建函数
  12. function test1() {
  13. alert("123456");
  14. }
  15.  
  16. //test1();
  17.  
  18. //实现两个数的相加
  19. function add1(a,b) {
  20. var sum = a+b;
  21. return sum;
  22. }
  23.  
  24. alert(add1(2,3));
  25. </script>
  26. </html>

第二种:匿名函数,使用关键字function(参数列表) { 方法体和返回值; } 

* 代码

//第二种定义方式

var test1 = function(a,b) {

return a+b;

}

//调用函数

alert(test1(3,4));

 
  1. <html>
  2. <head>
  3. <title>html示例</title>
  4. </head>
  5.  
  6. <body>
  7.  
  8.  
  9. </body>
  10. <script type="text/javascript">
  11. //第二种定义方式
  12. var test1 = function(a,b) {
  13. return a+b;
  14. }
  15. //调用函数
  16. alert(test1(3,4));
  17. </script>
  18. </html>

第三种:动态函数(方法体和返回值,包含参数列表都是通过参数传递进来的)

* 使用js里面的内置对象 new Function("参数列表","方法体和返回值")

* 代码

//第三种定义方式

var param = "a,b";

var method = "var sum;sum=a+b;return sum;";

var test2 = new Function(param,method);

//调用函数

alert(test2(5,6));

 
  1. <html>
  2. <head>
  3. <title>html示例</title>
  4. </head>
  5.  
  6. <body>
  7.  
  8.  
  9. </body>
  10. <script type="text/javascript">
  11. //第三种定义方式
  12. var param = "a,b";
  13. var method = "var sum;sum=a+b;return sum;";
  14. var test2 = new Function(param,method);
  15. //调用函数
  16. alert(test2(5,6));
  17. </script>
  18. </html>

 

2、js的函数的重载

(1)在java里面存在重载,方法名称相同,参数列表不同

(2)js里面是否存在函数的重载?

第一,在js不存在重载

第二,可以使用js函数里面arguments数组模拟重载的效果

(3)模拟重载的效果

* 在js里面有一个数组arguments,保存传递进来的参数,使用这个数组模拟重载的效果

* 代码

//模拟重载的效果

//在js函数里面有一个数组 arguments,保存传递进来的参数的

function add1() {

//alert(arguments.length);

//遍历数组

/*for(var i=0;i<arguments.length;i++) {

alert(arguments[i]);

}*/

//模拟重载的效果(有几个参数,实现这几个参数的相加)

var sum = 0;

for(var i=0;i<arguments.length;i++) {

sum += arguments[i];

}

return sum;

}

//调用

alert(add1(1,2));      

alert(add1(1,2,3));    

alert(add1(1,2,3,4)); 

 
  1. <html>
  2. <head>
  3. <title>html示例</title>
  4. </head>
  5.  
  6. <body>
  7.  
  8.  
  9. </body>
  10. <script type="text/javascript">
  11.  
  12. //模拟重载的效果
  13. //在js函数里面有一个数组 arguments,保存传递进来的参数的
  14. function add1() {
  15. //alert(arguments.length);
  16. //遍历数组
  17. /*for(var i=0;i<arguments.length;i++) {
  18. alert(arguments[i]);
  19. }*/
  20. //模拟重载的效果(有几个参数,实现这几个参数的相加)
  21. var sum = 0;
  22. for(var i=0;i<arguments.length;i++) {
  23. sum += arguments[i];
  24. }
  25. return sum;
  26. }
  27.  
  28. alert(add1(1,2));
  29. alert(add1(1,2,3));
  30. alert(add1(1,2,3,4));
  31.  
  32. /*function add1(a,b) {
  33. return a+b;
  34. }
  35.  
  36. function add1(a,b,c) {
  37. return a+b+c;
  38. }
  39.  
  40. function add1(a,b,c,d) {
  41. return a+b+c+d;
  42. }
  43.  
  44. //调用方法
  45. alert(add1(1,2)); //NaN
  46. alert(add1(1,2,3)); //NaN
  47. alert(add1(1,2,3,4)); //10*/
  48. </script>
  49. </html>

 

3、js的事件

(1)什么是事件:在html的元素里面可以触发事件调用js里面的函数

(2)在html的标签上面如何使用事件

* 有三种方式

* 第一种:使用事件属性调用js方法

** 代码

<input type="button" value="第一种方式" οnclick="add1();"/>

 

* 第二种:首先得到要绑定的标签,在使用事件的属性

** 代码

//第二种方式绑定事件

document.getElementById("buttonid").onclick = add1;

 

* 第三种:首先得到要绑定的标签,写js的代码

** 代码

document.getElementById("buttonid1").onclick = function() {

alert("aaaaa");

};

 
  1. <html>
  2. <head>
  3. <title>html示例</title>
  4. </head>
  5.  
  6. <body>
  7.  
  8. <input type="button" value="第一种方式" onclick="add1();"/>
  9.  
  10. <br/>
  11. <input type="button" id="buttonid" value="第二种方式"/>
  12.  
  13. <br/>
  14. <input type="button" id="buttonid1" value="第三种方式"/>
  15. </body>
  16. <script type="text/javascript">
  17. //在html标签上面绑定事件 有三种方式
  18. //第一种方式: 在标签里面加上事件的属性 ,调用js方法
  19. function add1() {
  20. alert("add1");
  21. }
  22.  
  23. //第二种方式绑定事件
  24. document.getElementById("buttonid").onclick = add1;
  25.  
  26. //第三种方式绑定事件
  27. document.getElementById("buttonid1").onclick = function() {
  28. alert("aaaaa");
  29. };
  30. </script>
  31. </html>

 

4、js的常用的事件

(1)onload事件和onclick事件

* onload:html页面在加载时候触发事件,调用响应的js方法

**  <body οnlοad="test1();">

* onclick:鼠标点击事件

** <input type="text" οnclick="test2();"/>

 
  1. <html>
  2. <head>
  3. <title>html示例</title>
  4. </head>
  5.  
  6. <body onload="test1();">
  7.  
  8. <input type="text" onclick="test2();"/>
  9. </body>
  10. <script type="text/javascript">
  11. //onload和onclick事件
  12. function test1() {
  13. alert("load");
  14. }
  15.  
  16. function test2() {
  17. alert("onclick");
  18. }
  19. </script>
  20. </html>

 

(2)onfocus事件和onblur事件

* onfocus:获取焦点

* onblur:失去焦点

 

(3)onmouseover 鼠标被移到某元素之上 

 

(4)onmouseout 鼠标从某元素移开 

 

(5)onkeypress:点击键盘上面的某个键,调用方法

* <input type="text" id="textid1" οnkeypress="key1(event);"/>

* function key1(obj) {

//alert(obj.keyCode);

//如果点击键盘上面的回车键 ,调用方法  13

if(obj.keyCode==13) {

alert("key1");

}

}

 
  1. <html>
  2. <head>
  3. <title>html示例</title>
  4. </head>
  5.  
  6. <body>
  7.  
  8. <input type="text" onfocus="focus1();" onblur="blur1();"/>
  9.  
  10. <br/>
  11. <input type="text" id="textid" onmouseover="over1();" onmouseout="out1();"/>
  12.  
  13. <br/>
  14. <input type="text" id="textid1" onkeypress="key1(event);"/>
  15. </body>
  16. <script type="text/javascript">
  17. //onkeypress
  18. function key1(obj) {
  19. //alert(obj.keyCode);
  20. //如果点击键盘上面的回车键 ,调用方法 13
  21. if(obj.keyCode==13) {
  22. alert("key1");
  23. }
  24. }
  25.  
  26. //onmouseover onmouseout
  27. function over1() {
  28. document.getElementById("textid").value = "调用onmouseover方法";
  29. }
  30.  
  31. function out1() {
  32. document.getElementById("textid").value = "调用onmouseout方法";
  33. }
  34.  
  35. //onfocus事件和onblur事件
  36. function focus1() {
  37. alert("调用onfocus方法");
  38. }
  39.  
  40. function blur1() {
  41. alert("调用onblur方法");
  42. }
  43. </script>
  44. </html>

 

5、js的dom对象

(1)什么dom(document  object  model):文档对象模型

* 文档:指的是标记型文档(html、xml)

* 对象:在对象里面有属性和方法

** 使用dom里面提供的对象里面的属性和方法,对标记型文档进行操作

 

* 要想使用dom对象标记型文档进行操作,首先需要解析标记型文档(html为例)

** html中包含 标签、属性、文本内容

 

(2)使用dom解析html

* 解析过程:根据html的层级结构在内存中分配一个树形结构

* document对象,代表整个文档

* element对象,代表标签

* 属性对象

* 文本对象

* Node节点对象,是这些对象的父对象,在找不到想要使用的方法,到Node里面找

 

(3)DHTML的简介

* 不是一种技术,是很多技术的简称。

* 包含的技术:

** html:封装数据

** css:使用属性和属性值修改数据的样式

** ECMAScript:语句和语法

** DOM:对标记型文档进行操作

 

6、document对象

(1)document对象代表整个文档

(2)方法

第一个:write(),向页面输出内容,可以输出html代码

* document.write("aa");

document.write("<hr/>");

 
  1. <html>
  2. <head>
  3. <title>html示例</title>
  4. </head>
  5.  
  6. <body>
  7.  
  8. <input type="text" id="textid" value="abcd"/>
  9. </body>
  10. <script type="text/javascript">
  11. //write方法
  12. document.write("aa");
  13. document.write("<hr/>");
  14.  
  15. //getElementById()
  16. var input1 = document.getElementById("textid");
  17. document.write(input1.value);
  18. </script>
  19. </html>

 

第二个:getElementById(): 获取标签对象,通过标签的id值进行获取

* var input1 = document.getElementById("textid");

document.write(input1.value);

 
  1. <html>
  2. <head>
  3. <title>html示例</title>
  4. </head>
  5.  
  6. <body>
  7.  
  8. <input type="text" name="name1" value="aaa"/>
  9. <input type="text" name="name1" value="bbb"/>
  10. <input type="text" name="name1" value="ccc"/>
  11. </body>
  12. <script type="text/javascript">
  13. //getElementsByName()
  14. var inputs1 = document.getElementsByName("name1");
  15. //alert(inputs1.length);
  16. //获取每个input里面的value值
  17. for(var i=0;i<inputs1.length;i++) {
  18. var input1 = inputs1[i];
  19. //得到value值
  20. alert(input1.value);
  21. }
  22. </script>
  23. </html>

 

第三个:getElementsByName(): 根据标签里面name属性的值得到标签对象,返回数组

* //getElementsByName()

var inputs1 = document.getElementsByName("name1");

//alert(inputs1.length);

//获取每个input里面的value值

for(var i=0;i<inputs1.length;i++) {

var input1 = inputs1[i];

//得到value值

alert(input1.value);

}

 

* 如果只有一个标签,使用getElementsByName返回的也是一个数组,不需要遍历,直接使用数组的下标获取值

* var inputs2 = document.getElementsByName("name2");

//alert(inputs2.length);

alert(inputs2[0].value);

 
  1. <html>
  2. <head>
  3. <title>html示例</title>
  4. </head>
  5.  
  6. <body>
  7.  
  8. <input type="text" name="name2" value="ccc"/>
  9. </body>
  10. <script type="text/javascript">
  11. //getElementsByName()
  12. var inputs2 = document.getElementsByName("name2");
  13. //alert(inputs2.length);
  14. alert(inputs2[0].value);
  15. </script>
  16. </html>

 

第四个:getElementsByTagName():根据标签的名称获取标签对象,返回数组

* var inputs3 = document.getElementsByTagName("input");

//alert(inputs3.length);

//遍历数组

for(var i=0;i<inputs3.length;i++) {

var input3 = inputs3[i];

//得到标签的value

alert(input3.value);

}

 

* 如果只有一个标签,使用getElementsByTagName返回的也是一个数组,不需要遍历,直接使用数组的下标获取值

var arr = document.getElementsByTagName("input");

alert(arr[0].value);

 
  1. <html>
  2. <head>
  3. <title>html示例</title>
  4. </head>
  5.  
  6. <body>
  7. <!--<input type="text" value="AAA"/>
  8. <input type="text" value="BBB"/>-->
  9. <input type="text" value="CCC"/>
  10. </body>
  11. <script type="text/javascript">
  12.  
  13. var arr = document.getElementsByTagName("input");
  14. alert(arr[0].value);
  15. //getElementsByTagName()
  16. /*var inputs3 = document.getElementsByTagName("input");
  17. //alert(inputs3.length);
  18. //遍历数组
  19. for(var i=0;i<inputs3.length;i++) {
  20. var input3 = inputs3[i];
  21. //得到标签的value
  22. alert(input3.value);
  23. }*/
  24. </script>
  25. </html>

 

7、innerHTML属性

(1)innerHTML属性不是dom里面属性

(2)实现什么功能

第一,获取标签里面的文本内容

** var span1 = document.getElementById("spanid");

alert(span1.innerHTML);

 

第二,向标签里面设置内容(可以写html代码)

** var div1 = document.getElementById("div1");

div1.innerHTML = "<table border='1'><tr><td>aaa</td><td>bbb</td></tr></table>";

 
  1. <html>
  2. <head>
  3. <title>html示例</title>
  4. </head>
  5.  
  6. <body>
  7.  
  8. <span id="spanid">哈哈呵呵</span>
  9.  
  10. <hr/>
  11.  
  12. <div id="div1"></div>
  13.  
  14. <input type="button" value="add" onclick="add1();"/>
  15. </body>
  16. <script type="text/javascript">
  17. //获取标签里面的文本内容
  18. var span1 = document.getElementById("spanid");
  19. //alert(span1.innerHTML);
  20.  
  21. function add1() {
  22. var div1 = document.getElementById("div1");
  23. div1.innerHTML = "<table border='1'><tr><td>aaa</td><td>bbb</td></tr></table>";
  24. }
  25. </script>
  26. </html>

 

8、练习:动态生成表格

(1)实现的步骤

* 首先创建页面,在页面中有两个普通输入项和按钮(有事件)

* 点击生成按钮,生成对应的表格

** 首先得到输入的行和列

** 根据行和列生成表格

*** 循环行 <tr>

*** 在行里面循环单元格 <td>

 

(2)代码

//实现生成表格

function add1() {

//得到输入的行和列

var hang = document.getElementById("hid").value;

var lie = document.getElementById("lid").value;

//alert(hang+" :: "+lie);

var tab = "<table border='1' cellpadding='10'>";

//生成行

for(var i=1;i<=hang;i++) {

tab += "<tr>";

//生成单元格

for(var j=1;j<=lie;j++) {

tab += "<td>aaaaa</td>";

}

tab += "</tr>";

}

tab += "</table>";

//alert(tab);

//获取div标签

var div1 = document.getElementById("div1");

//向div里面写html代码

div1.innerHTML = tab;

}

 
  1. <html>
  2. <head>
  3. <title>html示例</title>
  4. </head>
  5.  
  6. <body>
  7.  
  8. 行:<input type="text" id="hid" name="hang"/>
  9. 列:<input type="text" id="lid" name="lie"/>
  10. <br/>
  11. <input type="button" value="生成" onclick="add1();"/>
  12.  
  13. <div id="div1"></div>
  14. </body>
  15. <script type="text/javascript">
  16. //实现生成表格
  17. function add1() {
  18. //得到输入的行和列
  19. var hang = document.getElementById("hid").value;
  20. var lie = document.getElementById("lid").value;
  21. //alert(hang+" :: "+lie);
  22. var tab = "<table border='1' cellpadding='10'>";
  23. //生成行
  24. for(var i=1;i<=hang;i++) {
  25. tab += "<tr>";
  26. //生成单元格
  27. for(var j=1;j<=lie;j++) {
  28. tab += "<td>aaaaa</td>";
  29. }
  30. tab += "</tr>";
  31. }
  32. tab += "</table>";
  33. //alert(tab);
  34. //获取div标签
  35. var div1 = document.getElementById("div1");
  36. //向div里面写html代码
  37. div1.innerHTML = tab;
  38. }
  39. </script>
  40. </html>

 

9、表单的提交

(1)在html中写form标签,提交方式

提交表单有三种方式

第一种方式:在form标签里面,写提交按钮 <input type="submit"/>

= 代码

<form method="get">

username: <input type="text" name="username"/>

<br/>

password: <input type="password" name="password"/>

<br/>

<input type="submit" value="提交"/>

</form>

 
  1. <html>
  2. <head>
  3. <title>html示例</title>
  4. </head>
  5.  
  6. <body>
  7. <!-- 表单的提交方式一 -->
  8. <form method="get">
  9. username: <input type="text" name="username"/>
  10. <br/>
  11. password: <input type="password" name="password"/>
  12. <br/>
  13. <input type="submit" value="提交"/>
  14. </form>
  15.  
  16. </body>
  17. <script type="text/javascript">
  18.  
  19. </script>
  20. </html>

 

第二种方式:在form标签里面,写普通按钮 <input type="button"/>

= 代码

//使用button进行表单的提交

function form01() {

//得到form标签

var form01 = document.getElementById("form01");

//提交form表单

form01.submit();

}

 
  1. <html>
  2. <head>
  3. <title>html示例</title>
  4. </head>
  5.  
  6. <body>
  7. <!-- 表单的提交方式二 -->
  8. <form id="form01" method="get">
  9. username: <input type="text" name="username"/>
  10. <br/>
  11. password: <input type="password" name="password"/>
  12. <br/>
  13. <input type="button" value="提交" onclick="form01();"/>
  14. </form>
  15. </body>
  16. <script type="text/javascript">
  17. //使用button进行表单的提交
  18. function form01() {
  19. //得到form标签
  20. var form01 = document.getElementById("form01");
  21. //提交form表单
  22. form01.submit();
  23. }
  24. </script>
  25. </html>

 

第三种方式:使用超链接提交数据

* <a href="要链接的地址?参数名称1=参数的值1&参数名称2=参数的值2">超链接</a>

* <a href="15-表单的提交方式二.html?username=ccc&password=123456">超链接提交数据</a>

 
  1.  
  2. <html>
  3. <head>
  4. <title>html示例</title>
  5. </head>
  6.  
  7. <body>
  8.  
  9. <a href="15-表单的提交方式二.html?username=ccc&password=123456">超链接提交数据</a>
  10. </body>
  11. <script type="text/javascript">
  12.  
  13. </script>
  14. </html>

 

10、表单校验

(1)规范数据的输入的格式

(2)如何进行表单的校验

第一,使用submit进行表单提交,进行表单校验

* 使用事件 onsubmit事件,写在form标签里面

<form method="get" οnsubmit="return checkForm();">

* 如何return返回的值true可以提交表单,如果返回false不会提交表单

= 代码

//submit表单的校验

function checkForm() {

//判断用户名不能为空

var username = document.getElementById("usernameid").value;

var password = document.getElementById("passwordid").value;

if(username == "") {

alert("用户名不能为空");

return false;

}

if(password == "") {

alert("密码不能为空");

return false;

}

return true;

}

 
  1. <html>
  2. <head>
  3. <title>html示例</title>
  4. </head>
  5.  
  6. <body>
  7. <!--使用submit提交表单,进行校验-->
  8. <!-- 需要使用到事件 onsubmit事件 ,这个事件需要写在form标签里面 -->
  9. <form method="get" onsubmit="return checkForm();">
  10. username:<input type="text" name="username" id="usernameid"/>
  11. <br/>
  12. password:<input type="password" name="password" id="passwordid"/>
  13. <br/>
  14. <input type="submit" value="提交"/>
  15. </form>
  16.  
  17. </body>
  18. <script type="text/javascript">
  19. //submit表单的校验
  20. function checkForm() {
  21. //判断用户名不能为空
  22. var username = document.getElementById("usernameid").value;
  23. var password = document.getElementById("passwordid").value;
  24. if(username == "") {
  25. alert("用户名不能为空");
  26. return false;
  27. }
  28. if(password == "") {
  29. alert("密码不能为空");
  30. return false;
  31. }
  32. return true;
  33. }
  34. </script>
  35. </html>

 

第二,使用button进行表单校验

= 代码

//使用button提交表单,进行校验

function form01() {

//得到输入项里面的值,判断值是否为空,如果为空不进行提交

var username = document.getElementById("usernameid").value;

var password = document.getElementById("passwordid").value;

//如果值为空,不进行提交

if(username == "") {

alert("用户名不能为空");

} else if(password == "") {

alert("密码不能为空");

} else {

//得到form标签

var form01 = document.getElementById("form01");

form01.submit();

}

}

 
  1. <html>
  2. <head>
  3. <title>html示例</title>
  4. </head>
  5.  
  6. <body>
  7. <!-- 使用button提交表单,表单的校验-->
  8. <form id="form01" method="get">
  9. username:<input type="text" name="username" id="usernameid"/>
  10. <br/>
  11. password:<input type="password" name="password" id="passwordid"/>
  12. <br/>
  13. <input type="button" value="提交" onclick="form01();"/>
  14. </form>
  15.  
  16. </body>
  17. <script type="text/javascript">
  18. //使用button提交表单,进行校验
  19. function form01() {
  20. //得到输入项里面的值,判断值是否为空,如果为空不进行提交
  21. var username = document.getElementById("usernameid").value;
  22. var password = document.getElementById("passwordid").value;
  23. //如果值为空,不进行提交
  24. if(username == "") {
  25. alert("用户名不能为空");
  26. } else if(password == "") {
  27. alert("密码不能为空");
  28. } else {
  29. //得到form标签
  30. var form01 = document.getElementById("form01");
  31. form01.submit();
  32. }
  33. }
  34. </script>
  35. </html>

 

11、json的简介

(1)JavaScript Object  Notation,JavaScript 对象表示法。json是数据的交换格式,比xml更加轻巧。

json是js的原生的格式,通过js操作json不需要依赖其他东西,直接对json格式进行操作。

(2)json数据格式

* json有两种数据格式

第一种:json的对象的格式

* 写法 {json数据的名称1:json数据的值1,json数据的名称2:json数据的值2.....}

** 类似于key-value形式

** 名称和值之间使用冒号隔开,多个值之间使用逗号隔开

** json数据的名称是字符串的类型,json数据的值 string, number, object, array, true, false, null

** 具体数据的格式 {"name":"zhangsan","age":20,"addr":"nanjing"}

 

第二种:json的数组的格式

* 写法 [json对象1,json对象2........]

** 在数组里面有多个json对象,多个json对象之间使用逗号进行隔开

** 具体数据的格式 [{"name":"lucy","age":20},{"name":"mary","age":30}]

(3)可以使用json的这两种格式组成更加复杂json的格式

* 复杂的格式 {"name":[{"name":"zhangsan","addr":"beijing"},{"name":"lisi","addr":"tianjin"}]}

 

12、js解析json

(1)js解析json的对象的数据格式

* 通过json对象数据格式里面的name的名称得到name对应的值

* 代码

//js解析json的对象格式的数据

var json1 = {"username":"lucy","age":20,"addr":"nanjing"};

//对json的对象格式数据进行操作

document.write(json1.username);

document.write("<br/>");

document.write(json1.age);

document.write("<br/>");

document.write(json1.addr);

 
  1. <html>
  2. <head>
  3. <title>html示例</title>
  4. </head>
  5.  
  6. <body>
  7.  
  8.  
  9. </body>
  10. <script type="text/javascript">
  11. //js解析json的对象格式的数据
  12. var json1 = {"username":"lucy","age":20,"addr":"nanjing"};
  13. //对json的对象格式数据进行操作
  14. document.write(json1.username);
  15. document.write("<br/>");
  16. document.write(json1.age);
  17. document.write("<br/>");
  18. document.write(json1.addr);
  19. </script>
  20. </html>

 

(2)js解析json的数组的数据格式

* 根据数组的下标得到json对象,解析json对象,根据数据的名称得到值

* 遍历json数组,得到json数组里面每个json对象,解析每个json对象,根据json对象的数据

的名称得到值

* 代码

//js解析json数组格式的数据

var json2 = [{"username":"zhangsan","age":20,"addr":"beijing"},

{"username":"lisi","age":30,"addr":"tianjin"},

{"username":"wangnwu","age":40,"addr":"nanjing"}];

//js操作数组,遍历数组,根据数组的下标得到值

//遍历json数组格式,得到的是一个json对象,解析json对象(根据名称得到值)

//得到第二个json对象里面的age的值  数组下标从0开始的

document.write(json2[1].age);

//得到第一个json对象里面的addr的值

document.write("<br/>");

document.write(json2[0].addr);

//遍历json数组的格式

document.write("<hr/>");

for(var i=0;i<json2.length;i++) {

//得到数组里面的每一个json对象

var person = json2[i];

//得到每个对象里面的值

var username = person.username;

var age = person.age;

var addr = person.addr;

document.write("username:"+username+" ; age:"+age+" ; addr:"+addr);

document.write("<br/>");

}

 
  1. <html>
  2. <head>
  3. <title>html示例</title>
  4. </head>
  5.  
  6. <body>
  7.  
  8.  
  9. </body>
  10. <script type="text/javascript">
  11. //js解析json数组格式的数据
  12. var json2 = [{"username":"zhangsan","age":20,"addr":"beijing"},
  13. {"username":"lisi","age":30,"addr":"tianjin"},
  14. {"username":"wangnwu","age":40,"addr":"nanjing"}];
  15.  
  16. //js操作数组,遍历数组,根据数组的下标得到值
  17. //遍历json数组格式,得到的是一个json对象,解析json对象(根据名称得到值)
  18. //得到第二个json对象里面的age的值 数组下标从0开始的
  19. document.write(json2[1].age);
  20. //得到第一个json对象里面的addr的值
  21. document.write("<br/>");
  22. document.write(json2[0].addr);
  23. //遍历json数组的格式
  24. document.write("<hr/>");
  25. for(var i=0;i<json2.length;i++) {
  26. //得到数组里面的每一个json对象
  27. var person = json2[i];
  28. //得到每个对象里面的值
  29. var username = person.username;
  30. var age = person.age;
  31. var addr = person.addr;
  32. document.write("username:"+username+" ; age:"+age+" ; addr:"+addr);
  33. document.write("<br/>");
  34. }
  35.  
  36. </script>
  37. </html>

 

13、json练习:人员信息的显示

(1)把多个人员的信息存到json的数据格式里面,通过js解析json的数据格式,把所有的人员显示到页面的表格里面。

(2)[{"name":"zhangsan","age":20,"addr":"beijing"},

{"name":"lisi","age":30,"addr":"tinajin"},

{"name":"wangwu","age":40,"addr":"nanjing"}]

(3)代码

//创建json的数据的格式,用于存储人员的信息

var persons = [{"name":"zhangsan","age":20,"addr":"beijing"},

{"name":"lisi","age":30,"addr":"tinajin"},

{"name":"wangwu","age":40,"addr":"nanjing"}];

//使用js解析persons格式,把这些人员信息显示到页面上

//遍历json的数组,得到每个人员的信息

//生成表格 ,把数据放到表格里面,把表格显示到页面上

function showData() {

var tab = "<table border='1' cellpadding='10'>";

//添加表头

tab += "<tr><th>姓名</th><th>年龄</th><th>地址</th></tr>";

for(var i=0;i<persons.length;i++) {

//得到数组里面的每个json对象

var person = persons[i];

//得到每个json对象里面值

var name = person.name;

var age = person.age;

var addr = person.addr;

//生成表格

tab += "<tr><td>"+name+"</td><td>"+age+"</td><td>"+addr+"</td></tr>";

}

tab += "</table>";

//alert(tab);

//把table表格的代码显示到页面上,使用innerHTML属性

//得到div标签

var div1 = document.getElementById("div1");

//向div里面写table代码

div1.innerHTML = tab;

}

 
  1. <html>
  2. <head>
  3. <title>html示例</title>
  4. </head>
  5.  
  6. <body>
  7.  
  8. <input type="button" value="显示数据" onclick="showData();"/>
  9.  
  10. <div id="div1"></div>
  11. </body>
  12. <script type="text/javascript">
  13. //创建json的数据的格式,用于存储人员的信息
  14. var persons = [{"name":"zhangsan","age":20,"addr":"beijing"},
  15. {"name":"lisi","age":30,"addr":"tinajin"},
  16. {"name":"wangwu","age":40,"addr":"nanjing"}];
  17. //使用js解析persons格式,把这些人员信息显示到页面上
  18. //遍历json的数组,得到每个人员的信息
  19. //生成表格 ,把数据放到表格里面,把表格显示到页面上
  20. function showData() {
  21. var tab = "<table border='1' cellpadding='10'>";
  22. //添加表头
  23. tab += "<tr><th>姓名</th><th>年龄</th><th>地址</th></tr>";
  24. for(var i=0;i<persons.length;i++) {
  25. //得到数组里面的每个json对象
  26. var person = persons[i];
  27. //得到每个json对象里面值
  28. var name = person.name;
  29. var age = person.age;
  30. var addr = person.addr;
  31. //生成表格
  32. tab += "<tr><td>"+name+"</td><td>"+age+"</td><td>"+addr+"</td></tr>";
  33. }
  34. tab += "</table>";
  35. //alert(tab);
  36. //把table表格的代码显示到页面上,使用innerHTML属性
  37. //得到div标签
  38. var div1 = document.getElementById("div1");
  39. //向div里面写table代码
  40. div1.innerHTML = tab;
  41. }
  42.  
  43.  
  44. </script>
  45. </html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值