Discuz教程网

Jquery中对数组的操作代码

[复制链接]
authicon dly 发表于 2011-9-10 21:20:26 | 显示全部楼层 |阅读模式
而在Jquery中则使用$.map()、$.each()来操作数组:
首先是普通的数组(索引为整数的数组):
  1. $.map(arr,fn);
  2. 对数组中的每个元素调用fn函数逐个进行处理,fn函数将处理返回最后得到的一个新的数组
  3. var arr = [9, 8, 7, 6, 5, 4, 3, 2, 1];
  4. var newarr = $.map(arr, function(item) {return item*2 });
  5. alert(newarr);
  6. $.each(array,fn)对数组array每个元素调用fn函数进行处理,没有返回值
  7. var arr = [9, 8, 7, 6, 5, 4, 3, 2, 1];
  8. $.each(arr, function(key, value) { alert("key:" + key + "value:" + value); });
  9. 还可以省略function的参数,这个时候this可以得到遍历的当前元素的值
  10. var arr = [9, 8, 7, 6, 5, 4, 3, 2, 1];
  11. $.each(arr, function() { alert(this); });
复制代码

然后是索引为字符串的 键值对数组,针对这类数组,
一般采用$.each(array,fn)来操作:
var arr = { "jim": "11", "tom": "12", "lilei": "13" };
$.each(arr, function(key, value) { alert("姓名:"+key+"年龄:"+value); });
当然也可以使用无参的的function进行遍历;
当这类数据从服务器端获取时可以如下进行:
服务器端:
  1. <%@ WebHandler Language="C#" Class="Handler" %>
  2. using System;
  3. using System.Web;
  4. using System.Web.Script.Serialization;
  5. using System.Collections.Generic;
  6. public class Handler : IHttpHandler {
  7. public void ProcessRequest (HttpContext context) {
  8. context.Response.ContentType = "text/plain";
  9. Person p1 = new Person { Age = "22", Name = "tom" };
  10. Person p2 = new Person { Age = "23", Name = "jim" };
  11. Person p3 = new Person { Age = "24", Name = "lilei" };
  12. IList<Person> persons = new List<Person> {p1,p2,p3};
  13. JavaScriptSerializer js = new JavaScriptSerializer();
  14. string s= js.Serialize(persons);
  15. context.Response.Write(s);
  16. }
  17. public class Person
  18. {
  19. public string Name { get; set; }
  20. public string Age { get; set; }
  21. }
  22. public bool IsReusable {
  23. get {
  24. return false;
  25. }
  26. }
  27. }
复制代码

先实例化了三个person对象,然后放到一个集合中,最后把这个集合序列化成字符串流到客户端;
客户端:
客户端通过$.parseJSON()将后台传递过来的字符串转化为js数组对象,接下来我们就使用操作普通数组的方式来操作这个得到的数组
第三种就是通过标签选择器获取的Jquery对象数组,
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <title></title>
  5. <script src="../myjs/jquery-1.4.2.js" type="text/javascript"></script>
  6. <script type ="text/javascript" >
  7. $(function() {
  8. $("p").text("这是p标签");
  9. });
  10. </script>
  11. </head>
  12. <body>
  13. <p></p>
  14. <p></p> <p></p> <p></p> <p></p>
  15. <p></p>
  16. </body>
  17. </html>
复制代码

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

在dom加载完成后为每一个p元素动态的添加了文本,首先$("p")获取p标签的集合,相当于Javascript中的 document.getElementByTagName只是这里得到的是Jquery对象的数组,这样就有了Jquery固有的隐式迭代的功能,后面的text("这是p标签")的操作就迭代到了每一个P标签上,我们也可以显示的调用each函数来显示的迭代获得的Jquery对象数组,下面的代码同样可以实现上面的效果:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <title></title>
  5. <script src="../myjs/jquery-1.4.2.js" type="text/javascript"></script>
  6. <script type ="text/javascript" >
  7. $(function() {
  8. $("p").each(function() {
  9. $(this).text("这是p标签");
  10. });
  11. });
  12. </script>
  13. </head>
  14. <body>
  15. <p></p>
  16. <p></p> <p></p> <p></p> <p></p>
  17. <p></p>
  18. </body>
  19. </html>
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x



上一篇:jquery获得下拉框值的代码
下一篇:JavaScript中的View-Model使用介绍
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-2 22:06

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表