jQuery入门:数组的三种类型三种操作

开发 前端
众所周知,JQuery是对JavaScript的一种高效的封装,所以jQuery要操作的数组即是JavaScript中的数组,在JavaScript中我们使用for以及for-in进行数组的操作,而在jQuery中则使用$.map()、$.each()来操作数组:

众所周知,jQuery是对JavaScript的一种高效的封装,所以jQuery要操作的数组即是JavaScript中的数组,在JavaScript中我们使用for以及for-in进行数组的操作,而在jQuery中则使用$.map()、$.each()来操作数组:

首先是普通的数组(索引为整数的数组):

  1. $.map(arr,fn); 

对数组中的每个元素调用fn函数逐个进行处理,fn函数将处理返回***得到的一个新的数组

  1. var arr = [9, 8, 7, 6, 5, 4, 3, 2, 1];  
  2.       var newarr = $.map(arr, function(item) {return item*2 });  
  3.       alert(newarr); 

还可以省略function的参数,这个时候this可以得到遍历的当前元素的值

  1. var arr = [9, 8, 7, 6, 5, 4, 3, 2, 1];  
  2.         $.each(arr, function(key, value) { alert("key:" + key + "value:" + value); });  

然后是索引为字符串的 键值对数组,针对这类数组,

一般采用$.each(array,fn)来操作:

  1. var arr = { "jim""11""tom""12""lilei""13" };  
  2.      $.each(arr, function(key, value)
  3.  { alert("姓名:"+key+"年龄:"+value); }); 

当然也可以使用无参的的function进行遍历;

当这类数据从服务器端获取时可以如下进行:

服务器端:

  1. <%@ WebHandler Language="C#" Class="Handler" %>  
  2.  
  3. using System;  
  4. using System.Web;  
  5. using System.Web.Script.Serialization;  
  6. using System.Collections.Generic;  
  7. public class Handler : IHttpHandler {  
  8.       
  9.     public void ProcessRequest (HttpContext context) {  
  10.         context.Response.ContentType = "text/plain";  
  11.         Person p1 = new Person { Age = "22", Name = "tom" };  
  12.         Person p2 = new Person { Age = "23", Name = "jim" };  
  13.         Person p3 = new Person { Age = "24", Name = "lilei" };  
  14.         IList<Person> persons = new List<Person> {p1,p2,p3};  
  15.         JavaScriptSerializer js = new JavaScriptSerializer();  
  16.          string s= js.Serialize(persons);  
  17.         context.Response.Write(s);  
  18.     }  
  19.  
  20.     public class Person  
  21.     {  
  22.         public string Name { get; set; }  
  23.         public string Age { get; set; }  
  24.     }  
  25.     public bool IsReusable {  
  26.         get {  
  27.             return false;  
  28.         }  
  29.     }  
  30.  
  31. }  

先实例化了三个person对象,然后放到一个集合中,***把这个集合序列化成字符串流到客户端;

客户端:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2.  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  3.  
  4. <html xmlns="http://www.w3.org/1999/xhtml">  
  5. <head>  
  6.     <title></title>  
  7.  
  8.     <script src="../myjs/jquery-1.4.2.js" type="text/javascript"></script>  
  9.     <script  type ="text/javascript" >  
  10.         $.get("Handler.ashx"function(data) {  
  11.             var persons = $.parseJSON(data);  
  12.             $.each(persons, function(key, person) {   
  13.             alert("Age:"+person.Age+"Name:"+person.Name) });  
  14.         });  
  15.     </script>  
  16. </head>  
  17. <body>  
  18.  
  19. </body>  
  20. </html>  

客户端通过$.parseJSON()将后台传递过来的字符串转化为js数组对象,接下来我们就使用操作普通数组的方式来操作这个得到的数组

第三种就是通过标签选择器获取的jQuery对象数组,

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2.  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  3.  
  4. <html xmlns="http://www.w3.org/1999/xhtml">  
  5. <head>  
  6.     <title></title>  
  7.  
  8.     <script src="../myjs/jquery-1.4.2.js" type="text/javascript"></script>  
  9.     <script  type ="text/javascript" >  
  10.         $(function() {  
  11.             $("p").text("这是p标签");  
  12.         });  
  13.     </script>  
  14. </head>  
  15. <body>  
  16.  <p></p>  
  17.   <p></p> <p></p> <p></p> <p></p>  
  18.   <p></p>  
  19. </body>  
  20. </html>  

在浏览器中运行的效果为:

jQuery


在dom加载完成后为每一个p元素动态的添加了文本,首先$("p")获取p标签的集合,相当于JavaScript中的document.getElementByTagName只是这里得到的是jQuery对象的数组,这样就有了jQuery固有的隐式迭代的功能,后面的text("这是p标签")的操作就迭代到了每一个P标签上,我们也可以显示的调用each函数来显示的迭代获得的jQuery对象数组,显示的调用each可以看作是对$.each()的简化调用,下面的代码同样可以实现上面的效果:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  3.  
  4. <html xmlns="http://www.w3.org/1999/xhtml">  
  5. <head>  
  6.     <title></title>  
  7.  
  8.     <script src="../myjs/jquery-1.4.2.js" type="text/javascript"></script>  
  9.     <script  type ="text/javascript" >  
  10.         $(function() {  
  11.             $("p").each(function() {  
  12.             $(this).text("这是p标签");  
  13.             });  
  14.         });  
  15.     </script>  
  16. </head>  
  17. <body>  
  18.  <p></p>  
  19.   <p></p> <p></p> <p></p> <p></p>  
  20.   <p></p>  
  21. </body>  
  22. </html> 

原文链接:http://www.cnblogs.com/xieLongBao/archive/2011/01/14/1935920.html

【编辑推荐】

  1. PHP+XML+jQuery实现即时功能
  2. 犀利开发——jQuery内核详解与实践
  3. jQuery数组处理完全详解(实例演示)
责任编辑:陈贻新 来源: 谢龙宝的博客
相关推荐

2022-06-20 08:50:16

TypeScript类型语法

2018-12-13 20:14:18

物联网平台物联网IOT

2010-05-11 14:08:50

MySQL数字类型

2009-06-29 18:21:29

Hibernate

2009-08-03 17:41:20

ASP.NET Cac

2009-11-24 18:15:37

博科资讯管理软件

2009-11-13 09:39:48

2013-09-02 15:35:00

2010-04-12 16:35:15

Oracle数据库

2010-11-01 11:57:18

DB2客户端

2023-10-13 00:00:00

Redis模块空间对象

2010-04-02 13:15:01

Oracle跟踪

2020-05-08 07:26:16

物联网平台物联网IOT

2010-09-24 19:18:22

SQL索引

2010-09-09 10:43:56

VPN服务

2009-08-06 15:26:18

C#异常类型

2009-07-16 16:23:59

Swing线程

2010-10-28 10:27:35

oracle赋权

2010-09-25 14:38:29

SQL分页

2012-08-10 14:38:13

点赞
收藏

51CTO技术栈公众号