登录

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

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

比如:

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

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

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

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

# JavaScript
天蓬老师天蓬老师2202 天前422 次浏览

全部回复(2) 我要回复

  • PHP中文网

    PHP中文网2017-04-10 17:27:37

    简单一点的实现:

    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")

    回复
    0
  • 高洛峰

    高洛峰2017-04-10 17:27:37

    $('dom') //jQuery对象

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

    回复
    0
  • 取消回复发送