读书人

javascript function - getElementsBy

发布时间: 2012-11-08 08:48:11 作者: rapoo

javascript function -- getElementsByAttribute()
i modified a version of the javascript function getElementsByAttribute(),it used like "getElementsByTagName()",copy these code below to your html page can see the effect.

<head><script>function getElementByAttribute(aAttribute,aValue,abody){        var Elements=[],            sfunc='return Element.'+aAttribute+'=="'+aValue+'"?true:false;';        SearchElement( !!abody?abody:document.body );        return Elements;        function ElementVerifier(ele){            Element=ele;            if(Element.nodeName=='#text') return false;            return eval('Element.'+aAttribute+'=="'+aValue+'"?true:false;');        }        function SearchElement(ele){             if(!ele) return;            if(ElementVerifier(ele)) Elements.push(ele);            SearchElement(ele.firstChild);            SearchElement(ele.nextSibling);        }            }        function test(){         var foundElements=getElementByAttribute('style.width','100px');        alert(foundElements.length);       foundElements=getElementByAttribute('tagName','DIV',document.body);        alert(foundElements.length);        foundElements=getElementByAttribute('className','test-');        alert(foundElements.length);            }    </script><style>.test{}</style></head><body onload="test();">  <div style="width:100px">Test</div><div style="width:100px">Test</div><div class="test">Test</div></body>


注:这是我优化了一个外国人的方法,javascript只有三种getElemnet方法(getElemntById,getElemntsByName,getElementsByTagName),但有时候我们的需求更多所以就自己编写了一些方法,就比如这个getElemntsByAttribute,按属性名来查找指定范围内的元素。但是速度一般,找了很多类似的方法,速度都大同小异没有什么突破。如果大家有好的想法可以和我分享!

读书人网 >JavaScript

热点推荐