我在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;
}
答案 0 :(得分:0)
JQuery中大多数API都是方法的原因是它们可以返回原始对象,以便将另一个方法链接到。要自己启用此功能,您需要使用方法返回他们正在使用的JQuery包装集。返回的对象将支持在其上调用另一个方法。