javascript深入之查找元素操作

来源:互联网 发布:初中生网络安全教育 编辑:程序博客网 时间:2024/04/28 00:08
getElementsByClassName:
<body ><ul>    <li id="a1" class="a">aa</li>    <li id="a2" class="a b">aa</li>    <li id="a3" class="aa a b">aa</li> </ul> <div class="a">afdafaf</div><script type="text/javascript">var getElementsByClassName = function(className,node,tag){var node = node || document,nodes,res = [],match = false,eles,ele,classes;if(document.getElementsByClassName){nodes= node.getElementsByClassName(className);if(typeof tag !== "undefined"){for(var i=0,len=nodes.length; i<len;i++){var node = nodes[i];if(tag !== "*" && node.tagName === tag.toUpperCase()){res.push(node);}}}else{res=nodes;}}else{tag = tag || "*";classes = className.split(" ");eles = (tag === "*" && node.all) ? node.all : node.getElementsByTagName(tag);match = false;//循环比较//for(var i=eles.length; i>0; i--){for (var i=0,elen=eles.length; i<elen; i++){var ele = eles[i];for(var k=0,klen=classes.length; k<klen; k++){match =new RegExp("(^|\\s)" + classes[k] + "(\\s|$)").test((ele.className).replace(/(^\s+)|(\s+$)/,""));if(!match) break;}if(match) res.push(ele);}}return res;}//实例:alert(getElementsByClassName("a",document,"li").length);

原创粉丝点击