var GLOBAL = {};
GLOBAL.namespace=function(str){
var arr = str.split("."),o = GLOBAL;
for (i=(arr[0]=="GLOBAL")?1:0;i<arr.length;i++){
o[arr[i]] = o[arr[i]] || {};
o=o[arr[i]];
}
}
GLOBAL.namespace("DOM");
GLOBAL.DOM.getElementsByClassName = function(str,root,tag){
if(root){
root = typeof root =="string" ? document.getElementById(root) : root;
}else{
root = document.body;
}
tag = tag || "*";
var els = document.getElementsByTagName(tag),arr=[];
for(var i=0,n=els.length;i<n;i++){
for(var j=0,k=els[i].className.split(" "),l=k.length;j<l;j++){
if(k[j]==str){
arr.push(els[i]);
break;
}
}
}
return arr;
}
GLOBAL.DOM.addClass = function(node,str){
if(!new RegExp("(^|\\s+)"+str).test(node.className)){
node.className = node.className + " " + str;
}
}
GLOBAL.DOM.removeClass = function(node,str){
node.className = node.className.replace(new RegExp("(^|\\s+)"+str),"");
}
GLOBAL.namespace("Event");
//增加scope参数,用于设置handler中的this指针指向,默认指向node节点。
GLOBAL.Event.on = function(node,eventType,handler,scope){
node=typeof node =="string" ? document.getElementById(node) : node;
scope = scope || node;
if(document.all){
node.attachEvent("on" + eventType,function(){handler.apply(scope,arguments)});
}else{
node.addEventListener(eventType,function(){handler.apply(scope,arguments)},false);
}
}
转载于:https://blog.51cto.com/tugenhua/740664