Heim > Fragen und Antworten > Hauptteil
突然想到一个问题,在使用jquery的时候,可不可以让$符返回默认的$(dom)对象,比如返回$('body'),并且$符还可以作为正常的jquery对象使用?
比如:
只写$的时候就代表$('body'),$.hide()就代表‘body’元素隐藏;
写成$('body')的时候也能正常返回$(dom)对象,$('body').hide()也可以使‘body’元素隐藏;
$.extend() $.clean()这类的方法也能正常使用。
如果能实现,该怎么实现?谢谢
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")
高洛峰2017-04-10 17:27:37
$('dom') //jQuery对象
$('#dom')[0] //转换为正常dom对象
$('#dom').eq(0) //同样转换
var foo = document.getElementById('foo'); // 正常dom对象
$(foo) 转换为jquey 对线