
而在Jquery中則使用$.map()、$.each()來(lái)操作數(shù)組:
首先是普通的數(shù)組(索引為整數(shù)的數(shù)組):
代碼如下:
$.map(arr,fn);
對(duì)數(shù)組中的每個(gè)元素調(diào)用fn函數(shù)逐個(gè)進(jìn)行處理,fn函數(shù)將處理返回最后得到的一個(gè)新的數(shù)組
var arr = [9, 8, 7, 6, 5, 4, 3, 2, 1];
var newarr = $.map(arr, function(item) {return item*2 });
alert(newarr);
$.each(array,fn)對(duì)數(shù)組array每個(gè)元素調(diào)用fn函數(shù)進(jìn)行處理,沒有返回值
var arr = [9, 8, 7, 6, 5, 4, 3, 2, 1];
$.each(arr, function(key, value) { alert("key:" + key + "value:" + value); });
還可以省略function的參數(shù),這個(gè)時(shí)候this可以得到遍歷的當(dāng)前元素的值
var arr = [9, 8, 7, 6, 5, 4, 3, 2, 1];
$.each(arr, function() { alert(this); });
然后是索引為字符串的 鍵值對(duì)數(shù)組,針對(duì)這類數(shù)組,
一般采用$.each(array,fn)來(lái)操作:
var arr = { "jim": "11", "tom": "12", "lilei": "13" };
$.each(arr, function(key, value) { alert("姓名:"+key+"年齡:"+value); });
當(dāng)然也可以使用無(wú)參的的function進(jìn)行遍歷;
當(dāng)這類數(shù)據(jù)從服務(wù)器端獲取時(shí)可以如下進(jìn)行:
服務(wù)器端:
代碼如下:
<%@ WebHandler Language="C#" Class="Handler" %>
using System;
using System.Web;
using System.Web.Script.Serialization;
using System.Collections.Generic;
public class Handler : IHttpHandler {
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
Person p1 = new Person { Age = "22", Name = "tom" };
Person p2 = new Person { Age = "23", Name = "jim" };
Person p3 = new Person { Age = "24", Name = "lilei" };
IList
persons = new List {p1,p2,p3};
JavaScriptSerializer js = new JavaScriptSerializer();
string s= js.Serialize(persons);
context.Response.Write(s);
}
public class Person
{
public string Name { get; set; }
public string Age { get; set; }
}
public bool IsReusable {
get {
return false;
}
}
}
先實(shí)例化了三個(gè)person對(duì)象,然后放到一個(gè)集合中,最后把這個(gè)集合序列化成字符串流到客戶端;
客戶端:
客戶端通過$.parseJSON()將后臺(tái)傳遞過來(lái)的字符串轉(zhuǎn)化為js數(shù)組對(duì)象,接下來(lái)我們就使用操作普通數(shù)組的方式來(lái)操作這個(gè)得到的數(shù)組
第三種就是通過標(biāo)簽選擇器獲取的Jquery對(duì)象數(shù)組,
代碼如下:
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com