码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript 通过“类”来查找元素

时间:2015-11-27 01:03:32      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:

今天写了一个很简单、很粗暴的通过JS根据类来查找DOM元素。

为了降低它的粗暴等级(耗费性能)我给了三个等级。

首先性能最好的,适合FF,CH,IE8,通过querySelectorAll这个API。

其次是指定一个父级的ID。

最后只能全页面进行匹配!

因为水平有限,目前也只能写成这种,真的好好奇JQ的选择器是怎么去匹配DOM的,如果有大神看到这篇文章,请不要吝啬施教。。。

下面贴代码:

 1     function $(name,id){
 2 
 3         // BUG Handle
 4         try{
 5             if(!Boolean(name) || /^\s*$/.test(name)){
 6                 throw new Error(‘object not is empty or null‘);
 7             }
 8         }catch(e){
 9             alert(e);
10             return false;
11         }
12 
13         var elems=[],
14             reg = new RegExp(‘\\b‘+ name +‘\\b‘),
15             idx = 0;
16 
17         if(document.querySelectorAll){
18             elems = document.querySelectorAll(‘.‘+name);
19         }else if(id){
20             var childElements = document.getElementById(id).getElementsByTagName(‘*‘);
21             for(var i=0;i<childElements.length;i++){
22                 if(reg.test(childElements[i].className)){
23                     elems.push(childElements[i]);
24                 }
25             }
26         }else{    
27             var allElements = document.getElementsByTagName(‘*‘);
28             for(var i=0;i<allElements.length;i++){
29                 
30                 if(reg.test(allElements[i].className)){
31                     elems[idx] = allElements[i];
32                     idx++;
33                 }
34             }
35 
36         }
37 
38         if(elems.length==1){
39             return elems[0]
40         }else{
41             return elems;
42         }
43     }
44 
45 // 调用方法: $(className[,parentID])

 

JavaScript 通过“类”来查找元素

标签:

原文地址:http://www.cnblogs.com/HCJJ/p/4999343.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!