学编写javascript类库
(function() {
window['SoftLin'] = {}
//等同于document.getElementById()
//实现了多参数
function $() {
var elements = new Array();
for (var i = 0; i < arguments.length; i++) {
var element = arguments[i];
if (typeof element == 'string') {
element = document.getElementById(element);
}
if (arguments.length == 1) {
return element;
}
elements.push(element);
}
return elements;
}
window['SoftLin']['$'] = $;
//获许指定标签下Class名
function getElementsByClassName(className, tag) {
var allTags = document.getElementsByTagName(tag);
var matchingElements = new Array();
className = className.replace(/\-/g, "\\-");
var regex = new RegExp("(^|\\s)" + className + "(\\s|$)");
var element;
for (var i = 0; i < allTags.length; i++) {
element = allTags[i];
if (regex.test(element.className)) {
matchingElements.push(element);
}
}
return matchingElements;
}
window['SoftLin']['getElementsByClassName'] = getElementsByClassName;
//向DOM节点添加事件
function addEvent(node, type, listener) {
if (!(node = $(node)))
return false;
if (node.addEventListener) {
node.addEventListener(type, listener, false);
return true;
} else if (node.attachEvent) {
node['e' + type + listener] = listener;
node[type + listener] = function() { node['e' + type + listener](window.event); }
node.attachEvent('on' + type, node[type + listener]);
return true;
}
return false;
};
window['SoftLin']['addEvent'] = addEvent;
//向DOM节点后面添加节点
function insertAfter() {
}
//删除多个子节点
function removerChiildren() {
}
//将方法绑定到指定对象上
function bindFunction(obj, func) {
return function() {
func.apply(obj, arguments);
}
}
window['SoftLin']['bindFunction'] = bindFunction;
//获取浏览器大小
function getBrowserWindowSize() {
var de = document.documentElement;
return {
'width': (
window.innerWidth || (de && de.clientWidth) || document.body.clientWidth),
'height': (
window.innerHeight || (de && de.clientHeight) || document.body.clientHeight)
}
};
window['SoftLin']['getBrowserWindowSize'] = getBrowserWindowSize;
//nodeType常量 字面量方法定义
window['SoftLin']['node'] = {
ELEMENT_NODE: 1,
ATTRIBUTE_NODE: 2,
TEXT_NODE: 3,
CDATE_SECTION_NODE: 4,
ENTITY_REFERENCE_NODE: 5,
ENTITY_NODE: 6,
PROCESSING_INSTRUCTION_NODE: 7,
COMMENT_NODE: 8,
DOCUMENT_NODE: 9,
DOCUMENT_TYPE_NODE: 10,
DOCUMENT_FRAGMENT_NODE: 11,
NOTATION_NODE: 12
}
//遍历节点
function walkElementsLisner(func, node) {
var root = node || window.document;
var nodes = root.getElementsByTagName('*');
for (var i = 0; i < nodes.length; i++) {
func.call(nodes[i]);
}
};
window['SoftLin']['walkElementsLisner'] = walkElementsLisner;
//返回节点的深度
function walkTheDOMRecursive(func, node, depth, returnFromParent) {
var root = node || window.document;
var returnFromParent = func.call(node, depth++, returnFromParent);
var node = root.firstChild;
while (node) {
walkTheDOMRecursive(func, node, depth, returnFromParent);
node = node.nextSibling;
}
};
window['SoftLin']['walkTheDOMRecursive'] = walkTheDOMRecursive;
//遍历节点的属性
function walkTheDOMWithAttirubutes(node, func, depth, returnFromParent) {
var root = node || window.document;
returnFromParent = func.call(root, depth++, returnFromParent);
if (root.attributes) {
for (var i = 0; i < root.attributes.length; i++) {
walkTheDOMWithAttirubutes(root.attributes[i], func, depth - 1, returnFromParent);
}
}
if (root.nodeType != SoftLin.node.ATTRIBUTE_NODE) {
node = root.firstChild;
while (node) {
walkTheDOMWithAttirubutes(node, func, depth, returnFromParent);
node = node.nextSibling;
}
}
}
window['SoftLin']['walkTheDOMWithAttirubutes'] = walkTheDOMWithAttirubutes;
})();

浙公网安备 33010602011771号