标签:
今天写了一个很简单、很粗暴的通过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])
标签:
原文地址:http://www.cnblogs.com/HCJJ/p/4999343.html