参照prototype.js中getElementsByClassName的思想,扩展出几种在DEOM操作中可经常用到的获取对象的方法,使用获取对象变得更方便、更精确了: document.getElementsByClassName = function(className,oBox) { //适用于获取某个HTML区块内部含有某一特定className的所有HTML元素 this.d= oBox || document; var children = this.d.getElementsByTagName('*') || document.all; var elements = new Array(); for (var ii = 0; ii < children.length; ii++) { var child = children[ii]; var classNames = child.className.split(' '); for (var j = 0; j < classNames.length; j++) { if (classNames[j] == className) { elements.push(child); break; } } } return elements; } document.getElementsByType = function(sTypeValue,oBox) { //适用于获取某个HTML区块内部同属于某一特定type的所有HTML元素,如:input,script,link等等 this.d= oBox || document; var children = this.d.getElementsByTagName('*') || document.all; var elements = new Array(); for (var ii = 0; ii < children.length; ii++) { if (children[ii].type == sTypeValue) { elements.push(children[ii]); } } return elements; } function $() { var elements = new Array(); for (var ii = 0; ii < arguments.length; ii++) { var element = arguments[ii]; if (typeof element == 'string') element = document.getElementById(element); if (arguments.length == 1) return element; elements.push(element); } return elements; } $Cls = function (s,o){ return document.getElementsByClassName(s,o); }; $Type = function (s,o){ return document.getElementsByType(s,o); }; $Tag = function (s,o){ this.d=o || document; return this.d.getElementsByTagName(s); }; $Name = function (s){ //通过name的方式只能针对整个document而言,不能为其限定范围 return document.getElementsByName(s); };
推荐阅读
让您的菜单不离网站
你是否希望让你的论坛、帮助等系统保持左边框架的菜单呢?以下代码可以帮助您实现此项功能,任您怎么打开内容页,菜单框架栏也会同时执行。 将以下代码复制到内容页,top框架可能需要简单调整。 function GoFrame(>>>详细阅读
本文标题:获取DOM对象的几种扩展及简写
地址:http://www.17bianji.com/kaifa2/JS/31482.html
1/2 1