Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将我自己的js库选择器更改为jquery选择器$()_Javascript - Fatal编程技术网

Javascript 如何将我自己的js库选择器更改为jquery选择器$()

Javascript 如何将我自己的js库选择器更改为jquery选择器$(),javascript,Javascript,我已经创建了一个简单的javascript库,我想查询一些信息以便执行我的操作 第一:这是 我的JS库中的一部分代码 (function() { var lib = { elems: [], getElem: function() { var tmpElem = []; for (var i = 0; i < arguments.length; i++) tmpElem.

我已经创建了一个简单的javascript库,我想查询一些信息以便执行我的操作

第一:这是 我的JS库中的一部分代码

(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的源代码呢?谢谢你的回答,但我有一个小的inquire
var 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;
})();