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,按属性名来查找指定范围内的元素。但是速度一般,找了很多类似的方法,速度都大同小异没有什么突破。如果大家有好的想法可以和我分享!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值