这里有新鲜出炉的 jQuery 示例,程序狗速度看过来!
jQuery 是一个兼容多浏览器的 javascript 框架,核心理念是 write less,do more(写得更少, 做得更多)。jQuery 在 2006 年 1 月由美国人 John Resig 在纽约的 barcamp 发布,吸引了来自世界各地的众多 JavaScript 高手加入,由 Dave Methvin 率领团队进行开发。
首先是普通的数组(索引为整数的数组): $.map(arr,fn); 对数组中的每个元素调用 fn 函数逐个进行处理,fn 函数将处理返回最后得到的一个新的数组
众所周知,Jquery 是对 JavaScript 的一种高效的封装,所以 Jquery 要操作的数组即是 JavaScript 中的数组,在 JavaScript 中我们使用 for 以及 for-in 进行数组的操作,而在 Jquery 中则使用 $.map()、$.each() 来操作数组
- 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>
在浏览器中运行的效果为:
在 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>
来源: http://www.phperz.com/article/17/0426/283551.html