首先是普通的數(shù)組(索引為整數(shù)的數(shù)組):
$.map(arr,fn);
對數(shù)組中的每個元素調(diào)用fn函數(shù)逐個進行處理,fn函數(shù)將處理返回最后得到的一個新的數(shù)組
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)對數(shù)組array每個元素調(diào)用fn函數(shù)進行處理,沒有返回值
1 var arr = [9, 8, 7, 6, 5, 4, 3, 2, 1];
2 $.each(arr, function(key, value) { alert("key:" + key + "value:" + value); });
還可以省略function的參數(shù),這個時候this可以得到遍歷的當前元素的值
1 var arr = [9, 8, 7, 6, 5, 4, 3, 2, 1];
2 $.each(arr, function() { alert(this); });
然后是索引為字符串的 鍵值對數(shù)組,針對這類數(shù)組,
一般采用$.each(array,fn)來操作:
view sourceprint?1 var arr = { "jim": "11", "tom": "12", "lilei": "13" };
2 $.each(arr, function(key, value) { alert("姓名:"+key+"年齡:"+value); });
當然也可以使用無參的的function進行遍歷;
當這類數(shù)據(jù)從服務器端獲取時可以如下進行:
服務器端:
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<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對象,然后放到一個集合中,最后把這個集合序列化成字符串流到客戶端;
客戶端:
01 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
02
03 <html xmlns="http://www.w3.org/1999/xhtml">
04 <head>
05 <title></title>
06
07 <script src="../myjs/jquery-1.4.2.js" type="text/javascript"></script>
08 <script type ="text/javascript" >
09 $.get("Handler.ashx", function(data) {
10 var persons = $.parseJSON(data);
11 $.each(persons, function(key, person) {
12 alert("Age:"+person.Age+"Name:"+person.Name) });
13 });
14 </script>
15 </head>
16 <body>
17
18 </body>
19 </html>
客戶端通過$.parseJSON()將后臺傳遞過來的字符串轉(zhuǎn)化為js數(shù)組對象,接下來我們就使用操作普通數(shù)組的方式來操作這個得到的數(shù)組
第三種就是通過標簽選擇器獲取的Jquery對象數(shù)組,
01 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
02
03 <html xmlns="http://www.w3.org/1999/xhtml">
04 <head>
05 <title></title>
06
07 <script src="../myjs/jquery-1.4.2.js" type="text/javascript"></script>
08 <script type ="text/javascript" >
09 $(function() {
10 $("p").text("這是p標簽");
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>
在瀏覽器中運行的效果為:
在dom加載完成后為每一個p元素動態(tài)的添加了文本,首先$("p")獲取p標簽的集合,相當于Javascript中的document.getElementByTagName只是這里得到的是Jquery對象的數(shù)組,這樣就有了Jquery固有的隱式迭代的功能,后面的text("這是p標簽")的操作就迭代到了每一個P標簽上,我們也可以顯示的調(diào)用each函數(shù)來顯示的迭代獲得的Jquery對象數(shù)組,下面的代碼同樣可以實現(xiàn)上面的效果:
01 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
02
03 <html xmlns="http://www.w3.org/1999/xhtml">
04 <head>
05 <title></title>
06
07 <script src="../myjs/jquery-1.4.2.js" type="text/javascript"></script>
08 <script type ="text/javascript" >
09 $(function() {
10 $("p").each(function() {
11 $(this).text("這是p標簽");
12 });
13 });
14 </script>
15 </head>
16 <body>
17 <p></p>
18 <p></p> <p></p> <p></p> <p></p>
19 <p></p>
20 </body>
21 </html>