跟ADS.js一样 类似默写 加深对类库开发的理解
(function(){ //IORI命名空间 Advanced DOM Scripting if(!window.IORI){ window.IORI={}; } //确定浏览器是否与整个库兼容 //例子 alert(ADS.getEvent()); function isCompatible(other){ if(other===false ||!Array.prototype.push ||!Object.hasOwnProperty ||!document.createElement ||!document.getElementsByTagName ){ return false; } return true; } IORI.isCompatible=isCompatible; //使用if(IORI.isCompatible) //根据id获取元素、元素组 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; } IORI.$=$; //使用IORI.$('t1','t2') //添加事件 //例子IORI.addEvent(window,'load',test6); // IORI.addEvent(window,'load',test5); //可以为一个对象添加多个事件 function addEvent(node,type,listener){ if(!IORI.isCompatible){return false;} if(!(node=$(node))) {return false;} if(node.addEventListener){ //W3C的方法 node.addEventListener(type,listener,false); return true; } else if(node.attachEvent){ //MS IE的方法 node.attachEvent('on'+type,listener) /*node['e'+type_]=listener; node[type_]=function() { node['e'+type_](window.event); } node.attachEvent('on'+type_,node[type_]); */ return true; } //若两种方法都不具备 return false; } IORI.addEvent = addEvent; //删除事件 //例子 IORI.removeEvent(window,'load',test6); function removeEvent(node,type,listener){ if(!(node=$(node))){return false;} if(node.removeEventListener){ //W3C的方法 node.removeEventListener(type,listener,false); return true; } else if(node.detachEvent){ node.detachEvent('on'+type,listener); return true; } return false; } IORI.removeEvent = removeEvent; //依据className 查找元素(集合) //例子 ADS.getElementsByClassName("className","*",document); //返回 数组 function getElementsByClassName(className,tag,parent){ parent=parent||document; if(!(parent=$(parent))){return false;} //查找所有匹配的标签 var allTags=(tag=="*"&&parent.all)?parent.all:parent.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; } IORI.getElementsByClassName=getElementsByClassName; //反复隐显 //例子 IORI.toggleDisplay('id'); // IORI.toggleDisplay('id','block'); function toggleDisplay(node,value){ if(!(node=$(node))){return false;} if(node.style.display != 'none'){ node.style.display = 'none'; } else{ node.style.display = value||''; } } IORI.toggleDisplay = toggleDisplay; //在指定元素后面插入一个元素 //IORI.insertAfter("bu1","bu8") function insertAfter(node,referenceNode){ if(!(node=$(node))){return false;} if(!(referenceNode=$(referenceNode))){return false;} referenceNode.parentNode.insertBefore(node,referenceNode.nextSibling); } IORI.insertAfter = insertAfter; //给指定节点添加子节点, 添加在已有子节点的前面 function prependChild(parent,node){ if(!(parent=$(parent))){return false;} if(!(node=$(node))){return false;} if(parent.hasChildNodes()){ parent.insertBefore(node,parent.firstChild); } else{ parent.appendChild(node); } } IORI.prependChild = prependChild; //删除元素的子元素 function removeAllChild(parent){ if(!(parent=$(parent))){return false;} /*while(parent.hasChildNodes()){ parent.removeChild(parent.firstChild); }*/ /*while(parent.firstChild){ parent.removeChild(parent.firstChild); }*/ while(parent.firstChild){ parent.firstChild.parentNode.removeChild(parent.firstChild); } } IORI.removeAllChild = removeAllChild; })(window)