2

我创建了一个简单的 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;
})();

现在我们将继续......

正如我们在 jquery 中所知道的,当指向一个指定的元素时,我们像这样使用

$('#id').show // or
$(document).ready  // and so on

和我的图书馆以这种方式使用。

$.getElem('id')

现在我该如何更改这部分$.getElem('id')才能$()像在 jquery 中一样。

/////////////////////////////////////////////////////////////////////////////////// _ _ ///

应用@Peter Olson答案后,向我显示一条错误消息TypeError: $(...).html is not a function

此错误消息的原因是什么?

4

1 回答 1

2

您需要创建$一个函数,然后为其添加属性。

(function() {
    var lib = {
        // ...
    };
    var fn = lib.getElem;
    for(var i in lib) {
      fn[i] = lib[i];
    }
    window.lib = window.$ = fn;
})();
于 2013-04-19T17:37:38.280 回答