牛骨文教育服务平台(让学习变的简单)
博文笔记

jquery的对象数组的添加元素,删除元素

创建时间:2016-07-25 投稿人: 浏览次数:23200

        小弟今天遇到一个jquery数组对象的问题,添加进去,遍历失败,找不到什么原因    报错原因(SyntaxError: missing ; after for-loop initializer),最后...   认真看代码,百度上面找原因,果断解决了.

         找问题的同时找到了几个比较有用的东西,拿下来留着,万一以后有用!


        <script src="js/jquery.js" ></script>
        <script>
        /**
        * 从对象数组中删除属性为objPropery,值为objValue元素的对象
        * @param Array arrPerson  数组对象
        * @param String objPropery  对象的属性
        * @param String objPropery  对象的值
        * @return Array 过滤后数组
        */
        function remove(arrPerson,objPropery,objValue)
        {
           return $.grep(arrPerson, function(cur,i){
                  return cur[objPropery]!=objValue;
               });
        }
        /**
        * 从对象数组中获取属性为objPropery,值为objValue元素的对象
        * @param Array arrPerson  数组对象
        * @param String objPropery  对象的属性
        * @param String objPropery  对象的值
        * @return Array 过滤后的数组
        */
        function get(arrPerson,objPropery,objValue)
        {
           return $.grep(arrPerson, function(cur,i){
                  return cur[objPropery]==objValue;
               });
        }
        /**
        * 显示对象数组信息
        * @param String info  提示信息
        * @param Array arrPerson  对象数组
        */
        function showPersonInfo(info,arrPerson)
        {
           $.each(arrPerson, function(index,callback){
                 info+="Person id:" + arrPerson[index].id + " name:" +  arrPerson[index].name+ " sex:"+ arrPerson[index].sex+" age:"+  arrPerson[index].age+"/r/t";
            });
            alert(info);
        }
        //测试数据
        var arrPerson=new Array();
        var person=new Object();
        person.id=1;
        person.name="帅哥";
        person.sex="男";
        person.age=30;
        arrPerson.push(person);
        
        person=new Object();
        person.id=2;
        person.name="美眉甲";
        person.sex="女";
        person.age=28;
        arrPerson.push(person);
        
        person=new Object();
        person.id=3;
        person.name="美眉乙";
        person.sex="女";
        person.age=20;
        arrPerson.push(person);
        
        //测试删除
        showPersonInfo("原始数组:/r/t",arrPerson);
        arrPerson=remove(arrPerson,"id",1);
        showPersonInfo("删除之后:/r/t",arrPerson);
        //测试获取
        arrPerson=get(arrPerson,"id",3);
        showPersonInfo("只获取ID为3的元素:/r/t",arrPerson);
        
        </script>


通过$.each,可以遍历对象、数组的属性值并进行处理,下面有个示例,需要的朋友可以参考下

通过它,你可以遍历对象、数组的属性值并进行处理。

使用说明

each函数根据参数的类型实现的效果不完全一致:

1、遍历对象(有附加参数)

1 2 3 4 $.each(Object, function(p1, p2) { this; //这里的this指向每次遍历中Object的当前属性值 p1; p2; //访问附加参数 }, ["参数1", "参数2"]);

2、遍历数组(有附件参数)

1 2 3 4 $.each(Array, function(p1, p2){ this; //这里的this指向每次遍历中Array的当前元素 p1; p2; //访问附加参数 }, ["参数1", "参数2"]);

3、遍历对象(没有附加参数)

1 2 3 4 5 $.each(Object, function(name, value) { this; //this指向当前属性的值 name; //name表示Object当前属性的名称 value; //value表示Object当前属性的值 });

4、遍历数组(没有附加参数)

1 2 3 4 5 $.each(Array, function(i, value) { this; //this指向当前元素 i; //i表示Array当前下标 value; //value表示Array当前元素 });

下面提一下jQuery的each方法的几种常用的用法

Js代码

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 var arr = [ "one", "two", "three", "four"]; $.each(arr, function(){ alert(this); }); //上面这个each输出的结果分别为:one,two,three,four   var arr1 = [[1, 4, 3], [4, 6, 6], [7, 20, 9]] $.each(arr1, function(i, item){ alert(item[0]); }); //其实arr1为一个二维数组,item相当于取每一个一维数组, //item[0]相对于取每一个一维数组里的第一个值 //所以上面这个each输出分别为:1 4 7   var obj = { one:1, two:2, three:3, four:4}; $.each(obj, function(key, val) { alert(obj[key]); }); //这个each就有更厉害了,能循环每一个属性 //输出结果为:1 2 3 4

在前提不知道b在这个数组的下标,删除b这个元素 


var arrList = ["a","b","c","d"]; 
       
arrList.splice(jQuery.inArray("b",arrList),1); 


alert(arrList); 


其中jQuery.inArray("b",arrList)是b这个元素在数组arrList 中的位置 
splice(index,1)函数中第一个参数index是要删除元素在数组中的位置,第二个参数是要删除的数量。 


Array对象的方法有: 
concat() 连接两个或更多的数组,并返回结果。 
join() 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。 
pop() 删除并返回数组的最后一个元素。 
push() 向数组的末尾添加一个或更多元素,并返回新的长度。 
reverse() 颠倒数组中元素的顺序。 
shift() 删除并返回数组的第一个元素 
slice() 从某个已有的数组返回选定的元素 
sort() 对数组的元素进行排序 
splice() 删除元素,并向数组添加新元素。 
toSource() 返回该对象的源代码。 
toString() 把数组转换为字符串,并返回结果。 
toLocaleString() 把数组转换为本地数组,并返回结果。 
unshift() 向数组的开头添加一个或更多元素,并返回新的长度。 
valueOf() 返回数组对象的原始值。 


var arrList = new Array();


arrList.push("abc");


var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"


document.write(arr.join())


参考地址: http://www.w3school.com.cn/jsref/jsref_obj_array.asp


声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。