Jquery知识点二 jquery下对数组的操作


Posted in Javascript onJanuary 15, 2011

首先是普通的数组(索引为整数的数组):
$.map(arr,fn);
对数组中的每个元素调用fn函数逐个进行处理,fn函数将处理返回最后得到的一个新的数组

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)对数组array每个元素调用fn函数进行处理,没有返回值
var arr = [9, 8, 7, 6, 5, 4, 3, 2, 1]; 
$.each(arr, function(key, value) { alert("key:" + key + "value:" + value); });

还可以省略function的参数,这个时候this可以得到遍历的当前元素的值
var arr = [9, 8, 7, 6, 5, 4, 3, 2, 1]; 
$.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进行遍历;
当这类数据从服务器端获取时可以如下进行:
服务器端:
<%@ 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<Person> persons = new List<Person> {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; 
} 
} 
}

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

客户端:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title></title> 
<script src="../myjs/jquery-1.4.2.js" type="text/javascript"></script> 
<script type ="text/javascript" > 
$.get("Handler.ashx", function(data) { 
var persons = $.parseJSON(data); 
$.each(persons, function(key, person) { 
alert("Age:"+person.Age+"Name:"+person.Name) }); 
}); 
</script> 
</head> 
<body> 
</body> 
</html>

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

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title></title> 
<script src="../myjs/jquery-1.4.2.js" type="text/javascript"></script> 
<script type ="text/javascript" > 
$(function() { 
$("p").text("这是p标签"); 
}); 
</script> 
</head> 
<body> 
<p></p> 
<p></p> <p></p> <p></p> <p></p> 
<p></p> 
</body> 
</html>

在浏览器中运行的效果为:
Jquery知识点二 jquery下对数组的操作
在dom加载完成后为每一个p元素动态的添加了文本,首先$("p")获取p标签的集合,相当于Javascript中的document.getElementByTagName只是这里得到的是Jquery对象的数组,这样就有了Jquery固有的隐式迭代的功能,后面的text("这是p标签")的操作就迭代到了每一个P标签上,我们也可以显示的调用each函数来显示的迭代获得的Jquery对象数组,下面的代码同样可以实现上面的效果:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title></title> 
<script src="../myjs/jquery-1.4.2.js" type="text/javascript"></script> 
<script type ="text/javascript" > 
$(function() { 
$("p").each(function() { 
$(this).text("这是p标签"); 
}); 
}); 
</script> 
</head> 
<body> 
<p></p> 
<p></p> <p></p> <p></p> <p></p> 
<p></p> 
</body> 
</html>
Javascript 相关文章推荐
Prototype Function对象 学习
Jul 12 Javascript
JS文本框不能输入空格验证方法
Mar 19 Javascript
js window.open弹出新的网页窗口
Jan 16 Javascript
js+HTML5基于过滤器从摄像头中捕获视频的方法
Jun 16 Javascript
用JavaScript显示浏览器客户端信息的超相近教程
Jun 18 Javascript
JavaScript模拟数组合并concat
Mar 06 Javascript
vue :src 文件路径错误问题的解决方法
May 15 Javascript
关于JavaScript中高阶函数的魅力详解
Sep 07 Javascript
小程序中canvas的drawImage方法参数使用详解
Jul 04 Javascript
vue 保留两位小数 不能直接用toFixed(2) 的解决
Aug 07 Javascript
js 实现碰撞检测的示例
Oct 28 Javascript
详解Vue中$props、$attrs和$listeners的使用方法
Feb 18 Vue.js
Jquery知识点一 Jquery的ready和Dom的onload的区别
Jan 15 #Javascript
JavaScript去掉数组中的重复元素
Jan 13 #Javascript
javascript基础知识大集锦(二) 推荐收藏
Jan 13 #Javascript
javascript基础知识大集锦(一) 推荐收藏
Jan 13 #Javascript
myFocus slide3D v1.1.0 使用方法与下载
Jan 12 #Javascript
异步加载script的代码
Jan 12 #Javascript
数组方法解决JS字符串连接性能问题有争议
Jan 12 #Javascript
You might like
一个SQL管理员的web接口
2006/10/09 PHP
php中的一些数组排序方法分享
2012/07/20 PHP
基于PHP输出缓存(output_buffering)的深入理解
2013/06/13 PHP
PHP基于自增数据如何生成不重复的随机数示例
2017/05/19 PHP
php nginx 实时输出的简单实现方法
2018/01/21 PHP
判断是否输入完毕再激活提交按钮
2006/06/26 Javascript
jquery异步循环获取功能实现代码
2010/09/19 Javascript
浅析js中的浮点型运算问题
2014/01/06 Javascript
JS使用正则表达式过滤多个词语并替换为相同长度星号的方法
2016/08/03 Javascript
微信小程序  checkbox组件详解及简单实例
2017/01/10 Javascript
Vue开发过程中遇到的疑惑知识点总结
2017/01/20 Javascript
原生Aajax 和jQuery Ajax 写法个人总结
2017/03/24 jQuery
基于JavaScript表单脚本(详解)
2017/10/18 Javascript
使用DataTable插件实现异步加载数据
2017/11/19 Javascript
node实现的爬虫功能示例
2018/05/04 Javascript
详解vue指令与$nextTick 操作DOM的不同之处
2018/08/02 Javascript
jQuery简单实现根据日期计算星期几的方法
2019/01/09 jQuery
jQuery实现经典的网页3D轮播图封装功能【附源码下载】
2019/02/15 jQuery
vue移动端屏幕适配详解
2019/04/30 Javascript
JSON获取属性值方法代码实例
2020/06/30 Javascript
详解vue中v-on事件监听指令的基本用法
2020/07/22 Javascript
Python实现发送email的几种常用方法
2014/08/18 Python
在Python中操作字典之clear()方法的使用
2015/05/21 Python
Python3.6基于正则实现的计算器示例【无优化简单注释版】
2018/06/14 Python
Python装饰器简单用法实例小结
2018/12/03 Python
python通过配置文件共享全局变量的实例
2019/01/11 Python
python有序查找算法 二分法实例解析
2020/02/18 Python
Python实现查找数据库最接近的数据
2020/06/08 Python
网络编程中设计并发服务器,使用多进程与多线程,请问有什么区别?
2016/03/27 面试题
哈理工毕业生的求职信
2013/12/22 职场文书
2014国培学习感言
2014/03/05 职场文书
新疆民族团结演讲稿
2014/08/27 职场文书
初中国旗下的演讲稿
2014/08/28 职场文书
2014年房产销售工作总结
2014/12/08 职场文书
拯救大兵瑞恩观后感
2015/06/09 职场文书
春晚观后感
2015/06/11 职场文书