zoukankan      html  css  js  c++  java
  • Jquery:对数组的操作

    众所周知,Jquery是对JavaScript的一种高效的封装,所以Jquery要操作的数组即是JavaScript中的数组,在 JavaScript中我们使用for以及for-in进行数组的操作,而在Jquery中则使用$.map()、$.each()来操作数组:

    首先是普通的数组(索引为整数的数组):

    $.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对象,然后放到一个集合中,最后把这个集合序列化成字符串流到客户端;

    客户端:

     
    客户端通过$.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>
    
  • 相关阅读:
    Autofac(01)
    深入理解ADO.NET Entity Framework(02)
    使用excel 数据透视表画图
    C# 控制CH341进行SPI,I2C读写
    C# winform使用combobox遍历文件夹内所有文件
    通用分页存储过程
    如何让你的SQL运行得更快
    sql优化之使用索引
    SQL优化
    SQL 循环语句几种写法
  • 原文地址:https://www.cnblogs.com/jcomet/p/1936090.html
Copyright © 2011-2022 走看看