最近在项目中由于一个特殊的要求,需要使用类似于js的document.getElementsById的css class调用的实现。于是到网上搜索了一下,似乎并没有真正能较好达到目的且效率较理想的。于是乎,自己简单的写了一个,效率还凑合,而且支持多class名称的标签。代码如下:
function $(id){ return document.getElementById(id); } Array.prototype.indexOf = function(item,i){ i || (i = 0); var length = this.length; if (i < 0) i = length + i; for (; i < length; i++) if (this[i] === item) return i; return -1;} document.getElementsByClassName = function(className, parentElement){ var elems = ($(parentElement)||document.body).getElementsByTagName("*"); var result=[]; for (i=0; j=elems[i]; i++){ if (j.className.split(/(\s+)/).indexOf(className)!=-1){ result.push(j); } } return result; }
使用时先将代码加在head部分或者写在独立的js文件然后在head里引用,然后在页面中适当的部分即可通过document.getElementsByClassName来获得指定class的标签数组。
Page rendered at Wednesday, January 07, 2009 6:22:14 PM (China Standard Time, UTC+08:00)
Disclaimer - 这个Blog是我的个人空间,只代表我个人的看法和言论。 - 拒绝在未经过本人许可的情况下在任何商业性出版物品或商业性网站上引用本站文章。 - 欢迎其他Blogger在自己的Blog中引用我的文章,但请注明Trackback URL。 - 鲁ICP备05009011号