jQuery.pushStack的深入讲解

来源:互联网 发布:mysql 主键从0开始 编辑:程序博客网 时间:2024/06/07 05:42

pushStack用来做什么?

  • 注释解释:返回新的元素集合但保持旧元素的集合---实现链式风格end()方法
     
     
 <pre class="javascript" name="code">jQuery.fn =jQuery.prototype={pushStack: function( elems, name, selector ) {  // 初始化一个空的jQuery对象  var ret = jQuery(); // 如果参数elems是数组 则调用jQuery的push方法  将elems的所有元素推进ret集合中 if ( jQuery.isArray( elems ) ) {   push.apply( ret, elems );    } else {  //merge用法 也是用于合并,将elems的所有元素合并进入ret   jQuery.merge( ret, elems );  }   // this表示调用的jQuery对象,如$("p").pushStack()   // this就表示$("p") 这样做为了不丢失$("p")集合,   //这样可以支持链式操作 $("div").find("p").end()==$("div") // end: function() {//return this.prevObject || this.constructor(null);//}  ret.prevObject = this;  ret.context = this.context;  if ( name === "find" ) { // 修正选择符  比如 $("div").pushStack(elems,"find","p")  //则ret的选择符将变为 selector---->"div p";    ret.selector = this.selector + (this.selector ? " " : "") + selector;  } else if ( name ) { // 修正选择符  比如 $("div").pushStack(elems,"filter",".wain")  //则ret的选择符将变为 selector---->"div.filter(.wain)";   ret.selector = this.selector + "." + name + "(" + selector + ")";  }  // 返回新结合  return ret; }}

                                                                                                                 
                                    


   
                         


0 0
原创粉丝点击