JQuery官方学习资料(译):Utility方法

时间:2024-01-09 16:33:14
    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