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 |