javascript - 带有自定义库的 querySelectorAll

标签 javascript object frameworks css-selectors

我有这个代码:

(function() {

var base = function (elem) {

    var elements = document.querySelectorAll(elem);

    return {
        elems: elements[0],
        on: function (evt, func) {
            if(this.elems) this.elems.addEventListener(evt, func, false);
            return this;
        }
    };
};


window.base = window._ = base;

})();

我可以这样做:

_('form').on('submit', uploadImage);

但如果我这样做:

_('form').appendChild(input);

我得到一个错误:Object #<Object> has no method 'appendChild'

那么我该如何使用 _('element')使用 native 函数并仍然使它与我的对象中的方法一起工作?

最佳答案

为您的对象提供一个 .appendChild 函数,该函数调用元素上的 .appendChild

(function() {

    var base = function (elem) {

        var elements = document.querySelectorAll(elem);

        return {
            elems: elements[0],
            on: function (evt, func) {
                if(this.elems) this.elems.addEventListener(evt, func, false);
                return this;
            },
            appendChild: function(el) {
                this.elems.appendChild(el);
                return this;
        };
    };


    window.base = window._ = base;

})();

旁注。如果您只对从 querySelectorAll 返回的第一个元素感兴趣,则可以改用 querySelector

return {
    elems: document.querySelector(elem),
    on: function (evt, func) {
      // ...

关于javascript - 带有自定义库的 querySelectorAll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11020022/

相关文章:

javascript - minicart.js 不工作,购物车不弹出

javascript - 在 HTML 中执行动态表计算 - jQuery?

java - int[] 是一个对象吗?

C++ - 循环主要重置对象

php - 获取一个数字的 PHP 对象属性

ios - 无法使用新框架构建项目

MySQL框架

ios - 图书馆?静止的?动态的?还是框架?项目在另一个项目中

javascript - 打印模态窗口的全部内容

javascript - AngularJs 指令,它在内部创建带有数据对象的新指令