众所周知,局域网聊天软件 是对JavaScript的一种高效的封装,所以Jquery要操作的数组即是JavaScript中的数组,在JavaScript中我们使用for以及for-in进行数组的操作,而在Jquery中则使用$.map()、$.each()来操作数组:
首先是普通的数组(索引为整数的数组): $.map(arr,fn); 对数组中的每个元素调用fn函数逐个进行处理,fn函数将处理返回最后得到的一个新的数组 view sourceprint?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); $.each(array,fn)对数组array每个元素调用fn函数进行处理,没有返回值 view sourceprint?1 var arr = [9, 8, 7, 6, 5, 4, 3, 2, 1]; 2 $.each(arr, function(key, value) { alert("key:" + key + "value:" + value); }); 还可以省略function的参数,这个时候this可以得到遍历的当前元素的值 view sourceprint?1 var arr = [9, 8, 7, 6, 5, 4, 3, 2, 1]; 2 $.each(arr, function() { alert(this); }); 然后是索引为字符串的 键值对数组,针对这类数组,一般采用$.each(array,fn)来操作: view sourceprint?1 var arr = { "jim": "11", "tom": "12", "lilei": "13" }; 2 $.each(arr, function(key, value) { alert("姓名:"+key+"年龄:"+value); }); 当然也可以使用无参的的function进行遍历;
当这类数据从服务器端获取时可以如下进行: 服务器端: view sourceprint?01 <%@ WebHandler Language="C#" Class="Handler" %> 02 03 using System; 04 using System.Web; 05 using System.Web.Script.Serialization; 06 using System.Collections.Generic; 07 public class Handler : IHttpHandler { 08 09 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 persons = new List {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对象,然后放到一个集合中,最后把这个集合序列化成字符串流到客户端; 客户端: view sourceprint?01 02 03 04 05 06 07 08 15 16 17 18 19 客户端通过$.parseJSON()将后台传递过来的字符串转化为js数组对象,接下来我们就使用操作普通数组的方式来操作这个得到的数组 第三种就是通过标签选择器获取的Jquery对象数组, view sourceprint?01 02 03 04 05 06 07 08 13 14 15 16 17 18 19 在浏览器中运行的效果为: 在dom加载完成后为每一个p元素动态的添加了文本,首先$("p")获取p标签的集合,相当于Javascript中的document.getElementByTagName只是这里得到的是Jquery对象的数组,这样就有了Jquery固有的隐式迭代的功能,后面的text("这是p标签")的操作就迭代到了每一个P标签上,我们也可以显示的调用each函数来显示的迭代获得的Jquery对象数组,下面的代码同样可以实现上面的效果: view sourceprint?01 02 03 04 05 06 07 08 15 16 17 18 19 20 21
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/mynote/archive/2011/01/14/6140874.aspx