jquery 操作字符串、数组、对象常用方法
http://jquery.cuishifeng.cn/
1.$.trim(str) 去掉字符串首尾空格。(jQuery.trim())
在jquery中,遍历对象和数组,经常会用到$().each和$.each(),两个方法。两个方法是有区别的,从而这两个方法在针对不同的操作上,显示了各自的特点。
2.$().each,对于这个方法,在dom处理上面用的较多。如果页面有多个input标签类型为checkbox,对于这时用$().each来处理多个checkbook,例如:
$(“input[name=’ch’]”).each(function(i){
if($(this).attr(‘checked’)==true)
{
//一些操作代码
}回调函数是可以传递参数,i就为遍历的索引。
对于遍历一个数组,用$.each()来处理,例如:
$.each([{“name”:”limeng”,”email”:”xfjylimeng”},{“name”:”hehe”,”email”:”xfjylimeng”},function(i,n)
{
alert(“索引:”+i,”对应值为:”+n.name);
});
参数i为遍历索引值,n为当前的遍历对象.
var arr1 = [ “one”, “two”, “three”, “four”, “five” ];
$.each(arr1, function(){
alert(this);
});
输出:one two three four five
var arr2 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
$.each(arr2, function(i, item){
alert(item[0]);
});
输出:1 4 7
var obj = { one:1, two:2, three:3, four:4, five:5 };
$.each(obj, function(key, val) {
alert(obj[key]);
});
输出:1 2 3 4 5
http://www.frontopen.com/1394.html
3.$.extend()
第一个用法:用一个或多个其他对象来扩展一个对象,返回被扩展的对象 。jQuery.extend(target,object1,[objectN]):用于将object1、objectN的属性合并到target对象里,如果target里面有和object1、objectN同名属性,则object1、objectN的属性值将覆盖target的属性值,如果target不包含object1、objectN里所包含的属性值,则object1、objectN的属性值将会新增到target对象里。
第二个用法:jQuery.extend(object);为扩展jQuery类本身.为类添加新的方法。可以理解为添加静态方法
$.extend({
add:function(a,b){return a+b;},
minus:function(a,b){return a-b},
multiply:function(a,b){return a*b;},
divide:function(a,b){return Math.floor(a/b);}
});
var sum = $.add(3,5)+$.minus(3,5)+$.multiply(3,5)+$.divide(5,7);
console.log(sum);
4.$.grep()方法是按照某种条件来过滤数组,所以使用 $.grep() 方法可以从数组中过滤出我们想要的结果。
var nums='1,2,3,4,5,jQuery,Css,5'.split(',');split() 方法用于把一个字符串分割成字符串数组。
可见数组中有数字和字符串,如果我们想找出其中的字符串,我们可以直接使用 $.grep() 方法来完成这个任务,如下:
nums = $.grep(nums, function (num, index) {
// num = 数组元素的当前值
// index = 当前值的下标
return isNaN(num);//isNaN() 函数用于检查其参数是否是非数字值。
});
console.log(nums); //结果为: ["jQuery", "CSS"]
我们很容易想到 $.map() 方法,$.map() 方法可将一个数组转换为另一个数组,所以,使用 $.map() 方法也可以完成这个任务,如下:
nums = $.map(nums, function (num, index) { //和$.grep() 的区别 //return isNaN,得到结果为:[true, true] return isNaN(num) ? num : null; }); console.log(nums); // ["jQuery", "CSS"]
$.isArray( [ 10, 25, 3 ] ) ; // true
5.$.isArray()
判断一个对象是不是数组
$.isArray( new Array() ) ; // true
$.isArray( null ) ); // false
$.isArray( true ) ); // false
$.isArray( { } ) ; // false
6.$.inArray()
jquery.inarray(value,array)
确定value在数组中的位置(如果没有找到则返回 -1 )。
7.$.makeArray( object )
Object需要转换为数组的类数组对象。一个类数组对象,它至少应该具备length属性,哪怕其值为 0,它可以没有"元素"(相当于空数组)。
如果参数Object没有length属性,则它不是类数组对象
类数组对象是非常常见的,例如我们经常使用的jQuery对象、NodeList对象以及函数内的arguments对象,都是类数组对象。它们都具有length属性,
而且通过数字属性来访问对应的元素或参数。不过,它们毕竟不是真正的数组对象,因此无法使用数组对象的内置方法。通过jQuery.makeArray()
函数,
我们可以将类数组对象转换为一个真正的数组对象,从而使用数组对象的内置方法。
var obj = { 0:"CodePlayer", 1: "Hello", 2: 18, 3: true };
obj.length = 4;
// 类数组对象不是真正的数组
w( obj instanceof Array ); // falseinstanceof
运算符用来测试一个对象在其原型链中是否存在一个构造函数的prototype
属性。
var arr = $.makeArray( obj );
w( arr instanceof Array ); // true
w( arr.join(" ") ); // CodePlayer Hello 18 true
w( arr.length ); // 4
8.jQuery.unique()
函数用于根据元素在文档中出现的先后顺序对DOM元素数组进行排序,并移除重复的元素。
注意:该函数仅作用于DOM元素数组,而不是数字、字符串或其他类型。此外,这里的重复指的是两个元素实际上是同一个元素(通过全等"==="来判断),而不是指两个属性相同的元素。
9.jQuery.parseJSON()
函数用于将格式完好的JSON字符串转为与之对应的JavaScript对象。
所谓"格式完好",就是要求指定的字符串必须符合严格的JSON格式,例如:属性名称必须加双引号、字符串值也必须用双引号。
如果传入一个格式不"完好"的JSON字符串将抛出一个JS异常
10.jQuery.parseXML()
函数用于将字符串解析为对应的XML文档。
该函数将使用浏览器内置的解析函数来创建一个有效的XML文档,该文档可以传入jQuery()函数来创建一个典型的jQuery对象,从而对其进行遍历或其他操作。
11.$.type(obj)来实现类型判断
12.jQuery.merge( first, second ) 返回: Array 合并两个数组内容到第一个数组。
$.merge( [0,1,2], [2,3,4] )
[0,1,2,2,3,4]