JQuery官方学习资料,译:Utility方法

JQuery提供了一些utility方法在$命名空间里,这些方法对完成常规的编程任务非常有帮助。

  • $.trim()

删除前后部的空白内容。

// 返回 "lots of extra whitespace"

$.trim( " lots of extra whitespace " );

  • $.each()

变量数组或对象。.each()方法可以被选择器调用,遍历选择器中的所有元素,注意选择调用的是.each()方法而不是$.each()。

$.each([ "foo", "bar", "baz" ], function( idx, val ) {

console.log( "element " + idx + " is " + val );

});

$.each({ foo: "bar", baz: "bim" }, function( k, v ) {

console.log( k + " : " + v );

});

  • $.inArray()

返回一个值在数组中的序号,当数组中不存在该值时,返回-1。

var myArray = [ 1, 2, 3, 5 ];

if ( $.inArray( 4, myArray ) !== -1 ) {

console.log( "found it!" );

}

  • $.extend()

改变第一个对象的属性,采用后续对象的属性值。

var firstObject = { foo: "bar", a: "b" };

var secondObject = { foo: "baz" };

var newObject = $.extend( firstObject, secondObject );

console.log( firstObject.foo ); // "baz"

console.log( newObject.foo ); // "baz"

如果你不想改变任何一个传入$.extend()方法的参数对象,那么你可以传入一个空对象作为第一个参数。

var firstObject = { foo: "bar", a: "b" };

var secondObject = { foo: "baz" };

var newObject = $.extend( {}, firstObject, secondObject );

console.log( firstObject.foo ); // "bar"

console.log( newObject.foo ); // "baz"

  • $.proxy()

返回一个方法并在所提供的作用域内执行。

var myFunction = function() {

console.log( this );

};

var myObject = {

foo: "bar"

};

myFunction(); // window

var myProxyFunction = $.proxy( myFunction, myObject );

myProxyFunction(); // myObject

如果你有一个带方法的对象,你可以传递这个对象和方法的名称,返回的方法将永远在这个对象的作用域内执行。

var myObject = {

myFn: function() {

console.log( this );

}

};

$( "#foo" ).click( myObject.myFn ); // HTMLElement #foo

$( "#foo" ).click( $.proxy( myObject, "myFn" ) ); // myObject