jQuery.extend($.expr[":"],{

between:function(a , i , m){
var temp=m[3].split(",");
return temp[0]<=i&&i<temp[1];
}
   
}); 这是自己写的一个自定义过滤器,而对其中的expr的含义不太清楚,另外对m为什么会是包含5个元素m[0],m[1],m[2],m[3],m[4]。谢谢了

解决方案 »

  1.   

    这个是扩展:这个符号,例如jQuery不是有:first的选择器选择第一个匹配中的元素么,这个虽然我没看懂,但看英文是某两个数之间的元素。
      

  2.   

    试出来了<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
        <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js"></script>
        <script type="text/javascript">
    $(function(){
    $("#btn1").click(function(){
    $("li:between(1,3)").css("color","red")
    })
    }); jQuery.extend($.expr[":"],{
                
            between:function(a , i , m){
                var temp=m[3].split(",");
                return temp[0]<=i&&i<temp[1];
            }
                                   
    });
        </script>
    </head>
    <body>
    <input type="button" value="open" id="btn1" />
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
    <li>6</li>
    <li>7</li>
    <li>8</li>
    </body>
    </html>
      

  3.   

    楼主 直接在firebug下看看 各个参数 打印的是什么值就知道了    jQuery.extend($.expr[":"],{
                
            between:function(a , i , m){
    console.log(a)
    console.log(i)
    console.log(m)
                var temp=m[3].split(",");
                return temp[0]-1<=i&&i<temp[1];
            }
                                   
        });