本帖最后由 shopnc2017 于 2014-11-30 12:29:56 编辑

解决方案 »

  1.   


    var obj = {
          data : ["a","b","c"],
          get: function(i){
           return this.data[i];
         }
    }
    var str = obj.get(0);//按你的理解,这应该返回Object了?
      

  2.   

    $cr.get(0)等于$cr[0] 返回的是dom对象
    想返回JQ集合中的单个JQ对象要用$cr.eq(0)
      

  3.   

    你还是没有解释请楚,为啥用get(0)返回的就是dom对象呢,而用eq(0)返回的就是JQ对象呢,我问的就是这个问题。
      

  4.   

    自己看源码吧。 get: function( num ) {
    return num == null ? // Return a 'clean' array
    this.toArray() : // Return just the object
    ( num < 0 ? this[ this.length + num ] : this[ num ] );
    },
    eq: function( i ) {
    i = +i;
    return i === -1 ?
    this.slice( i ) :
    this.slice( i, i + 1 );
    },
    slice: function() {
    return this.pushStack( slice.apply( this, arguments ),
    "slice", slice.call(arguments).join(",") );
    },
    pushStack: function( elems, name, selector ) {
    // Build a new jQuery matched element set
    var ret = this.constructor(); if ( jQuery.isArray( elems ) ) {
    push.apply( ret, elems ); } else {
    jQuery.merge( ret, elems );
    } // Add the old object onto the stack (as a reference)
    ret.prevObject = this; ret.context = this.context; if ( name === "find" ) {
    ret.selector = this.selector + ( this.selector ? " " : "" ) + selector;
    } else if ( name ) {
    ret.selector = this.selector + "." + name + "(" + selector + ")";
    } // Return the newly-formed element set
    return ret;
    }
    你要是再问每行代码是什么意思,那我也不知道说什么好了。
      

  5.   

    你可以看一下API文档,get()是专门定义的一个可以对DOM对象进行操作的方法,至于你要问我别人怎么为什么这样定义,这个我就真不知道了
      

  6.   

    作者就这么规定的!
    get()方法返回集合中的DOM,eq()方法返回集合中的$!你觉得这样不合理可以自己写一个,你自己规定一个方法的执行规则!你可以用get()返回$,用eq()返回DOM
      

  7.   

    你还是没有解释请楚,为啥用get(0)返回的就是dom对象呢,而用eq(0)返回的就是JQ对象呢,我问的就是这个问题。其實也不用解釋,因為這就是JQ本來的功能定義
    官方的API已經說明要DOM就是用GET,JQ對象就是用EQ