创建自定义jquery选择器(不是过滤器/伪选择器)

时间:2012-07-19 15:29:57

标签: javascript jquery jquery-selectors


我想创建一个类似于Basic CSS Selectors的自定义选择器,而不是那些以冒号开头的伪选择器(使用$.expr[':']创建)。
这是将document.elementFromPoint方法合并到jquery中。
我为此编写了一个代码如下:

$._find = $.find;
$.find = function(query, context, extra, seed ){
    var start,end,expr,_ref,top,left;
    if(typeof query === 'string'){
        start = query.indexOf("(");
        end = query.indexOf(")",start);
        if(start !== -1 && end !== -1){
            expr = "["+query.slice(start+1,end)+"]";
            _ref = $.parseJSON(expr);top=_ref[0];left=_ref[1];
            console.log(document.elementFromPoint(top,left));
            return $([document.elementFromPoint(top,left)]);
        }
    }
    return $._find.apply(null,[query, context, extra, seed]);
};

适用于普通查询。但是当执行代码$('(10,20)')时,会返回一个空的jquery结果。
问题发生在第return $([document.elementFromPoint(top,left)]);行,因为上一行恰好提供了一个有效的DOM元素。

欢迎任何评论。

PS:我不是在寻找伪选择器,提前谢谢

0 个答案:

没有答案