wfquery
Version:
like jQuery but just for new browser
45 lines (43 loc) • 1.53 kB
JavaScript
wfQuery.fn = wfQuery.prototype = [];
wfQuery.fn.constructor = wfQuery;
/**
* wfQuery 初始化方法
*
* @param {string} selector 选择器可以是:css选择器、html片段或者DOMCollection等
* @param {string} context 使用css选择器时包含标签
* @return {wfQuery} 返回wfQuery对象
*/
var Init = wfQuery.fn.Init = function (selector, context) {
context = context || doc;
var type = Object.prototype.toString.call(selector);
if (!selector) {
return this;
}
else if (selector.constructor === wfQuery) {
return selector;
}
else if (type === '[object String]') {
var holder = document.createElement('WF');
if (/^\s*[\<]/.test(selector)) {
holder.innerHTML = selector;
return new Init(holder.children);
}
return new Init(context.querySelectorAll(selector));
}
else if ('[object HTMLCollection]' === type || '[object NodeList]' === type || '[object Array]' === type) {
this.length = selector.length;
for (var i = 0; i < selector.length; i++) {
this[i] = selector[i];
}
return this;
}
else if (wfQuery.isFunction(selector)) {
selector(wfQuery);
}
else {
this.length = 1;
this[0] = selector;
return this;
}
};
Init.prototype = wfQuery.fn;