jQuery 在 $ 命名空间中提供了多个实用方法。这些方法能帮助你完成例程(routine programming)任务。接下来有一些实用方法的例子;完整的 jQuery 实用方法的参考, 请访问 http://api.jquery.com/category/utilities/.
去除行间和末尾的空白。
$.trim(' 大量额外空白 ');
// 返回 '大量额外空白'
在数组和对象上迭代。
$.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);
});
还有一个方法 $.fn.each,也可用于在一个选择的元素中进行迭代。
在数组中返回值索引,如果值不在数组中就为 -1 。
var myArray = [ 1, 2, 3, 5 ];
if ($.inArray(4, myArray) !== -1) {
console.log('found it!');
}
使用后面对象的属性改变第一个对象的属性。
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'
返回一个函数它总是运行在一个提供的作用域里 — 就是说,this 的设置意味着内部传递函数到第二个参数。
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); // 记录 DOM 元素 #foo
$('#foo').click($.proxy(myObject, 'myFn')); // 记录 myObject
Copyright Rebecca Murphey, released under the Creative Commons Attribution-Share Alike 3.0 United States license.