不知道jquery的类名选择器是怎样实现的,能想到的就是利用遍历tagname,然后选出className为指定类名的元素,不过这种方法性能太差,不知道jquery到底是怎样实现,哪里可以看到?如果jquery源码里能看到请提供在哪一行,最好能贴出来,谢谢。

解决方案 »

  1.   

    这种事儿,jQuery源码开放的,好好看看就是了。用调试器跟踪下。
    其实就是对字符串分析下,最后用getElementsByClassName函数查找。至于getElementsByClassName性能镇么样,就看各浏览器自己的脚本引擎了。
      

  2.   

    怎样用调试器跟踪绑定事件呢?另外如果用getElementByClassName会在ie下出现不兼容。ie8一下好像没有这个方法。
      

  3.   

    自己在别的其他地方看到一个,不过不知道是不是jquery的写法
    function getElementsByClassName(className, parentElement){
       var elems = ($(parentElement)||document.body).getElementsByTagName("*");
       var result=[];
       for (i=0; j=elems[i]; i++){
       if ((" "+j.className+" ").indexOf(" "+className+" ")!=-1){
       result.push(j);
       }
    }
    return result;
    }