对这类方法挺感兴趣的,因为方法的回调函数的返回值和jQuery变量好像没有什么关系。看了filter方法的源代码后,我就模仿了这个方法,自定义两个jQuery方法:some和every,类似于ES5新增的Array类方法some和every。代码如下:
$.fn.some = function(qualifier) { var self = this; return grep(this, false, function(self, index) { return qualifier.call(self, index); }); }; $.fn.every = function(qualifier) { var self = this; return grep(this, true, function(self, index) { return qualifier.call(self, index); }); }; ? function grep(ele, isEvery, callback) { for (var i = 0; i < ele.length; i++) { if (isEvery) { if (!callback(ele[i], i)) { return false; } } else { if (callback(ele[i], i)) { return true; } } } return isEvery; }
时间: 2024-10-22 07:48:59