$('div').slice(1,3).css('background','red').end().css('color','blue');  入栈原理图:

jquery 04_html

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
<script src="jquery-2.0.3.js"></script>
<script>


$(function(){
    console.log( $('div'));//json对象Object { 0: <div>, 1: <div>, 2: <div>, 3: <div>, length: 4, prevObject: Object, context: HTMLDocument → new%202.html, selector: "div" }
    
    console.log( $('div').toArray() );//Array [ <div>, <div>, <div>, <div> ]
    
    $('div') : { 0 : div , 1 : div , 2 : div , length : 3 }
    
    $('div').toArray() : [div,div,div]
    
    $('div').get(-1).innerHTML = '222222222';
    
    for(var i=0;i<$('div').get().length;i++){
        $('div').get(i).innerHTML = '222222';
    }
    
    /*$('div').pushStack( $('span') ),pushStack()返回span,span的prevObject等于div,css('background','red')只会把span变红,
    end: function() {
        return this.prevObject || this.constructor(null);
    },
    调用end方法就是返回prevObject就实现了栈,多次调用end(),最后返回空,就不处理最后的css方法。*/
    
    $('div').pushStack( $('span') ).css('background','red').end().end().end().css('background','yellow');
    
/* slice: function() { return this.pushStack( core_slice.apply( this, arguments ) ); }, core_slice = core_deletedIds.slice, core_deletedIds = [], $('div').slice(1,3)返回2.3两个div,他的prevObject = $('div')(4个div),css('background','red')就是把2个div变红,end().css('color','blue')把4个div变蓝。*/ $('div').slice(1,3).css('background','red').end().css('color','blue');

/* eq: function( i ) { var len = this.length, j = +i + ( i < 0 ? len : 0 ); return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] ); }, */ $('div').eq(0).css('background','red'); var arr = ['a','b','c'] arr = $.map(arr,function(elem,i){ return elem + i; }); alert( arr );//[a0,b1,c2] }); </script> </head> <body> <div>div</div> <div>div</div> <div>div</div> <div>div</div> <span>span</span> </body> </html>