http://tianyazjq110.iteye.com/blog/578759问题一:上面那个页面中第14行里的 m[3] 是什么意思?中括号代表什么?中括号中为什么要是3?
 
 
 
http://www.oschina.net/code/snippet_54100_2959
问题二:上面那个页面中第01行中的 stack 是什么意思?

解决方案 »

  1.   


     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
     <html xmlns="http://www.w3.org/1999/xhtml">  
         <head>  
             <title>插件4,between</title>  
             <meta http-equiv="Content-Type" content="text/html; charset=gbk" />  
             <!--   引入jQuery -->  
             <script src="jq.js" type="text/javascript">  
             </script>  
             <script type="text/javascript">  
                 ;  
                 (function($){  
                     $.extend($.expr[":"], {  
                         between: function(a, i, m){ 
     $("#cc").html(m[3]);
                             var tmp = m[3].split(",");  
                             return tmp[0]-0<i && i<tmp[1]-0;  
                             //tmp[0],eg为2,i>2的时候,并且i<5,另外一个边界,条件成立,根据索引值i,保留其所对应的Dom元素.  
                         }  
                     })  
                 })(jQuery);  
                   
                 //插件应用  
                 $(function(){  
                     alert("执行前");  
                     $("div:between(2,5)").css("background","white");  
                     alert("执行后");  
                 })  
             </script>  
         </head>  
         <body>  
             <div style="background:red">  
                 0  
             </div>  
             <div style="background:blue">  
                 1  
             </div>  
             <div style="background:green">  
                 2  
             </div>  
             <div style="background:yellow">  
                 3  
             </div>  
             <div style="background:gray">  
                 4  
             </div>  
             <div style="background:orange">  
                 5  
             </div>  
     <div id="cc"></div>
         </body>  
    </html>m[3]就是2,5,也就是div:between(2,5)
      

  2.   


    $("div:between(2,5)")m的值是:[
    ':between(2,5)', // 0
    'between',       // 1
    '',              // 2
    '2,5'            // 3
    ]m作为一个数组当然可以用中括号了!stack 是作为选择器使用以后获取的所有元素集合!上例就是所有的div元素!
      

  3.   


    这下终于豁然开朗了,谢谢仁兄!
    不过还有一事不明,stack这个参数好像可以省略,省略就是使用其默认值,那可以肯定,它的默认值就是获取所有元素,那要是不省略呢,是不是还有其它设定,比如说是不是可以不猎取所有的元素
      

  4.   

       $("#cc").html(m[3]);
       代码里我用程序显示了m[3],难道你就不知道举一反三,变通一下,直接把m[0],m[1],甚至整个m显示出来吗?晕死!即使你不知道复杂的应用,最起码应该知道JS里数组是长什么样的吧!自己多动手,其实很多问题都能够自己解决的,而且还能学得更深入!
      

  5.   


    当你使用$.expr[":"]这个扩展选择器时,jquery就会可以给你传递这个4个参数,无论你是否会使用,他都会传这个4个参数!
      

  6.   


    无论你是否明确声明参数的个数是否4个,jquery都会传递这4个参数!
    你可以认为,当你使用$.expr[":"]扩展选择器时,就会传递4个参数:当前元素本身,当前索引值,选择器匹配符参数,和所有要筛选的元素集合!其实这个相当于$es = $('div');
    $es.each(function(i,n){
    // 无论你between怎么实现,jquery就是这样调用between的
    between(n, i, ['', ''], $es);
    });