模仿jQuery的filter方法

对这类方法挺感兴趣的,因为方法的回调函数的返回值和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

模仿jQuery的filter方法的相关文章

jquery filter()方法

jquery中filter() 方法允许您规定一个过滤规则,不匹配这个标准的元素会被从集合中删除,匹配的元素会被返回. 一.filter()语法 $(selector).filter(criteria,function(index)) 参数 描述 criteria 可选.规定要从被选元素组合中返回的选择器表达式.jQuery 对象.一个或多个元素. 提示:如需规定多个条件,请使用逗号分隔. function(index) 可选.为集合中的每个元素规定要运行的函数.如果返回 true,则保留元素,

jquery的filter()函数和find()函数的区别

jquery的filter()函数和find()函数的区别:在jQuery中中众多的函数,使用起来非常的方便,同时有些函数在作用上非常的接近,于是也容易造成一定的误操作.filter()函数和find()函数同有筛选的作用,下面就介绍一下它们两者之间的区别.一.filter()函数:此函数用来筛选元素集合中的匹配元素,并且返回匹配的元素集合,例如: $("div").filter(".mytest"); 以上代码可以在div元素集合中筛选class属性值为mytes

基于jquery的has()方法以及与find()方法以及filter()方法的区别详解

1. has(selector选择器或DOM元素)   将匹配元素集合根据选择器或DOM元素为条件,检索该条件在每个元素的后代中是否存在,将符合条件的的元素构成新的结果集. 例子如下:<ul>  <li>list item 1</li>  <li>list item 2    <ul>      <li><div><span>a</span></div>list item 2-a<

jQuery -&amp;gt; filter使用方法

利用filter函数能够从wrapper set中过滤符合条件的DOM元素. 假设我们有一个内容例如以下的html文件,要获取类为external的<a>元素,使用filter能够非常easy地搞定. <a href="#" class="external">link</a> <a href="#" class="external">link</a> <a hr

浅谈今天所学的Jquery 中的filter()方法

一直以来对JQuery很喜欢,它封装了JavaScript,用起来更方便,不过无论什么方法,必须要理解这个方法本来的含义,此外就是要在自己的逻辑上整理清楚,这样才能做到更多的效果.“遇到问题了,多看手册”这句话是当初学脚本语言的时候老师经常说的一句话,当初很郁闷他这句话,不过现在发现,封住的方法的确多得很,只有不断地学习,不断地用到,才会发现这些方法的区别,也才能更加合理地利用这些前辈们为我们打造好的各种包. 先来说说今天认识到的filter()方法吧. 这个方法主要用来遍历列表中的元素,或者有

Jquery filter()方法简介

利用filter函数可以从wrapper set中过滤符合条件的dom元素. 如下图html代码,假如我们要获取类名为filter的<a>标签,用filter方法可以很轻松的获得. <a href="#" class="filter">link</a> <a href="#" class="filter">link</a> <a href="#&quo

javascript之模仿jQuery实现框架雏形

JQuery是如此的强大,所以我决定模仿jQuery造一个轮子,边造轮子边学习jQuery是如何利用各种技巧实现那些非常强大的功能的.既然是模仿jQuery,我决定将新的框架命名为jqc,jQuery copy之意.那么接下来让我们从零实现一个框架的雏形吧,如有谬误有劳告知. 沙箱模式 在一切的开始,我们需要定义一个沙箱来将我们的所有代码放在里面,只留部分接口供外部调用.在沙箱内的所有变量都属于局部变量,不会污染全局变量环境. (function(window,undefined){ var j

jQuery基础---filter()和find()

这是jQuery里常用的2个方法.他们2者功能是完全不同的,而初学者往往会被误导. 首先 我们看.find()方法:现在有一个页面,里面HTML代码为;程序代码 <div class="css">     <p class="rain">测试1</p></div><div class="rain">     <p>测试2</p></div> 如果我们使

jquery的clone方法bug的修复

测试发现,textarea和select的jquery的clone方法有问题,textarea和select的值clone的时候会丢掉,发现这个是jquery的一个bug,上不了的可以看下代码,比较简单.就是在clone的时候将val再重新赋值一下,如果知道这个了,就简单了自己写. 引入到你要用的clone的页面就ok jquery.fix.clone.js (function (original) {  jQuery.fn.clone = function () {    var result