Javascript 如何将我自己的js库选择器更改为jquery选择器$()
我已经创建了一个简单的javascript库,我想查询一些信息以便执行我的操作 第一:这是 我的JS库中的一部分代码Javascript 如何将我自己的js库选择器更改为jquery选择器$(),javascript,Javascript,我已经创建了一个简单的javascript库,我想查询一些信息以便执行我的操作 第一:这是 我的JS库中的一部分代码 (function() { var lib = { elems: [], getElem: function() { var tmpElem = []; for (var i = 0; i < arguments.length; i++) tmpElem.
(function() {
var lib = {
elems: [],
getElem: function() {
var tmpElem = [];
for (var i = 0; i < arguments.length; i++)
tmpElem.push(document.getElementById(arguments[i]));
this.elems = tmpElem;
tmpElem = null;
return this;
},
html: function(txt) {
for (var i = 0; i < this.elems.length; i++)
this.elems[i].innerHTML = txt;
return this;
},
style: function(prob, val) {
for (var i = 0; i < this.elems.length; i++)
this.elems[i].style[prob] = val;
return this;
},
addEvent: function(event, callback) {
if (this.elems[0].addEventListener) {
for (var i = 0; i < this.elems.length; i++)
this.elems[i].addEventListener(event, callback, false);
} else if (this.elems[0].attachEvent) {
for (var i = 0; i < this.elems.length; i++)
this.elems[i].attachEvent('on' + event, callback);
}
return this;
},
toggle: function() {
for (var i = 0; i < this.elems.length; i++)
this.elems[i].style.display = (this.elems[i].style.display === 'none' || '') ? 'block' : 'none';
return this;
},
domLoad: function(callback) {
var isLoaded = false;
var checkLoaded = setInterval(function() {
if (document.body && document.getElementById)
isLoaded = true;
}, 10);
var Loaded = setInterval(function() {
if (isLoaded) {
clearInterval(checkLoaded);
clearInterval(Loaded);
callback();
}
}, 10);
}
};
var fn = lib.getElem;
for(var i in lib)
fn[i] = lib[i];
window.lib = window.$ = fn;
})();
我的图书馆就是这样用的
$.getElem('id')
现在,我如何将this part$.getElem('id')
更改为jquery中的$()
//////////////////////新修改/////////////////////////////
应用@Peter Olson
回答后,向我显示一条错误消息TypeError:$(…)。html不是函数
出现此错误消息的原因是什么?您需要将
$
设置为函数,然后向其添加属性
(function() {
var lib = {
// ...
};
var fn = lib.getElem;
for(var i in lib) {
fn[i] = lib[i];
}
window.lib = window.$ = fn;
})();
在运行jQuery时?为了实现这一点,
lib
应该是一个函数。@asawyer:也许是的,也许你不能告诉我一个简单的例子。为什么不看看jQuery的源代码呢?谢谢你的回答,但我有一个小的inquirevar fn=lib.getElem;对于(var i in lib){fn[i]=lib[i];}
,前面的部分我不太理解。您能解释一下吗?它将lib.getElem
函数分配给fn
,然后将lib
的所有属性添加到fn
。然后,当您调用fn
时,就好像调用了lib.getElem
,但是您可以使用fn
获得lib
中的所有属性。要使用,您可以使用$(“id”)
,或者$.getElem(“id”)
。谢谢,当使用$时。getElem('id')
可以正常工作,但是$('id'))
不工作,在使用任何方法时显示错误,类型错误:$(…)。样式不是函数
。样式是属于对象库的方法。我无法告诉您错误来自何处,我认为可能是您在问题中未包含的部分代码。
(function() {
var lib = {
// ...
};
var fn = lib.getElem;
for(var i in lib) {
fn[i] = lib[i];
}
window.lib = window.$ = fn;
})();