function getClass(objName){
var regTagClass=/\w+\.\w+/;
if(regTagClass.test(objName)){
var nameArray=objName.split(".");
var tagName=nameArray[0];
var className=nameArray[1];
var tagArray=new Array();
tagArray=document.getElementsByTagName(tagName);
var elementArray=new Array();
var j=0;
for(var i=0;i<tagArray.length;i++){
if(tagArray[i].className==className){
elementArray[j]=tagArray[i];
j++;
}
}
return elementArray;
}
else{
return false;
}
}
这样遍历了DOM树,各们大大有没有效率高一点的写法,jQuery又是怎么实现通过class获取元素的呢?(本人功力尚浅,jQuery看不太懂)

解决方案 »

  1.   

    浏览器有querySelectorAll函数的话,就优先用这个,没有的话,那就只能用类名做正则,遍历DOM匹配了。
      

  2.   

    精通JavaScript 里前两章的有讲到
    记得好像正则验证的。。楼主自己找找。。
      

  3.   

    通过class拿元素。肯定没有document.getElementById这样快就连jquery也会慢的~·
      

  4.   

    凡是不是浏览器原生的函数,而是由js写出来的,效率都不会快到哪去。
    尽量使用document.getElementById
      

  5.   

    主要是为了一次性获取多个对象以便作批量处理,document.getElementById获取多个对象就不太方便了