本帖最后由 z930618 于 2013-08-07 03:28:29 编辑

解决方案 »

  1.   

    $("#id:parents")这个写法似乎有误你可以$("#id").parents()或者$("#id:parent")才可以
      

  2.   

    $("#id:parent")是jQuery本身自带的选择器啊……我是自定义选择器
      

  3.   

    http://james.padolsey.com/javascript/extending-jquerys-selector-capabilities/
      

  4.   


    我按着上面的例子改了……可是效果还是一样啊$.extend($.expr[':'],
    {
        parents: function(e)
        {
            var $this=$(e);
            return ($this.parent());
        }
    });function test(e)
    {
            alert($("#punch:parents").html());
    }$(document).on("click","#punch:parents",test);我是在火狐的scriptish上使用的。
      

  5.   

    parents要返回一个布尔值。你写的是返回一个jQuery包装集我理解的是
    $("#punch:parents")与$("#punch").filter(":parents")结果应一样
      

  6.   


    “parents要返回一个布尔值。你写的是返回一个jQuery包装集”
    这句没看懂,我要写的是获取父级的选择器,当然是返回包装集啊,为什么返回布尔值?$("#punch").filter(":parents")我试过了,确实一样,
    $("#punch:parents")和$("#punch").filter(":parents")的返回结果都和$("#punch")一样
      

  7.   


    哦……我明白了,原来返回值要是布尔值啊JQuery自定义选择器的基本语法:$.expr[':'].test = function(obj, index, meta, stack){
        /* obj - is a current DOM element
           index - the current loop index in stack
           meta - meta data about your selector 
           stack - stack of all elements to loop
       
           Return true to include current element
           Return false to explude current element
        */
    };汗