首页 > jquery的$符能返回默认dom对象吗?

jquery的$符能返回默认dom对象吗?

突然想到一个问题,在使用jquery的时候,可不可以让$符返回默认的$(dom)对象,比如返回$('body'),并且$符还可以作为正常的jquery对象使用?

比如:

只写$的时候就代表$('body'),$.hide()就代表‘body’元素隐藏;

写成$('body')的时候也能正常返回$(dom)对象,$('body').hide()也可以使‘body’元素隐藏;

$.extend() $.clean()这类的方法也能正常使用。

如果能实现,该怎么实现?谢谢


$('dom') //jQuery对象

$('#dom')[0] //转换为正常dom对象
$('#dom').eq(0) //同样转换
var foo = document.getElementById('foo'); // 正常dom对象
$(foo) 转换为jquey 对线

简单一点的实现:

var funcs=['hide','show']
var body=$('body')
for (var i=0,j=funcs.length;i<j;i++) {
    var func=funcs[i]
    if (typeof $.fn[func] ==='function') {
        $[func]=$.fn[func].bind(body)
    }
}
$.hide()

如果只是为了简化书写的话可以把$("body")赋值给一个变量

var $$=$("body")
【热门文章】
【热门文章】