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.