如何在自定义函数中启用链接

时间:2016-12-12 03:59:55

标签: javascript jquery

我在JavaScript中创建自己的库。我已经做了一些基本的功能,比如.css().text()等。它对我有用,但是当我在一个元素中添加两个方法时,它只应用第一个方法而忽略第二个方法。

例如:

__('p').text('Hello World').css({'color':'red'});

只有hello world才会生效,而不是.css() 这是我的代码:

function __(selector) {
    var _kean = {};

    _kean.selector = selector;

    if (typeof selector == 'object' || typeof selector == 'undefined') {
        _kean.element = [_kean.selector];
    } else if (typeof selector == 'string') {
        _kean.element = document.querySelectorAll(_kean.selector);
    } else if (selector instanceof HTMLElement) {
        _kean.element = [selector];
    } else {
        _kean.element = document.querySelectorAll(_kean.selector);
    }

    _kean.text = function(elems) {
        return [].slice.call(_kean.element).map(function(el, i) {
            if(!elems) return el.textContent;
                      return el.textContent = elems;
        });
        return _kean;
    }

    _kean.css = function(propval) {
        _kean.element.forEach(function(elements) {
            Object.assign(elements.style, propval);
        });
         return _kean;
    }

 return _kean;
}

1 个答案:

答案 0 :(得分:0)

JQuery中大多数API都是方法的原因是它们可以返回原始对象,以便将另一个方法链接到。要自己启用此功能,您需要使用方法返回他们正在使用的JQuery包装集。返回的对象将支持在其上调用另一个方法。