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教程--从入门到精通JavaScript教程--从入门到精通JavaScript教程--从入门到精通JavaScript教程--从入门到精通JavaScript教程--从入门到精通JavaScript教程--从入门到精通JavaScript教程--从入门到精通...
JavaScript教程--从入门到精通.pdf JavaScript教程--从入门到精通.pdf JavaScript教程--从入门到精通.pdf JavaScript教程--从入门到精通.pdf
高性能JavaScript编程-高清-带书签.pdf高性能JavaScript编程-高清-带书签.pdf高性能JavaScript编程-高清-带书签.pdf高性能JavaScript编程-高清-带书签.pdf
JavaScript教程--从入门到精通 PPT 精简版
通常情况下, JavaScript中建立一个对象用"new"加上constructor function来实现. 如new Date(), new Object()等. var book = new Object(); book.name = "JavaScript is Cool"; book.author = "tom"; book.pages = ...
节点红色贡献功能节点红色功能节点,具有从npm安装和使用软件包的能力相容性节点红色版本> 1.0安装从您的节点红色目录npm install node-red-contrib-function-npm用法function-npm节点的行为类似于普通功能节点,...
目前仅有的讲JavaScript的测试驱动开发的书,英文版,Amazon书评4星级的好书。
And you’ll learn how to capitalize on trends like server-side JavaScript and NoSQL data stores, as well as new frameworks that make JavaScript more manageable and testable as a first-class language....
org.mozilla.javascript-1.7.2.jar资源包
JavaScript-function-base函数基础.gif Javascript-operational-character运算符.gif JavaScript-process-statement流程控制.gif JavaScript-regular-expressions正则表达式.gif JavaScript-string-function字符串...
一个js代码整理工具。如:<script language="JavaScript">var i=0,s="",k=0;function foo(){for(j=0;... } } } </script> 详细介绍:http://jcay.com/javascript-code-improver.html<br>
阿里云功能计算无服务器插件此插件可在无服务器框架内启用Aliyun Function Compute支持。入门先决条件使用插件的Node.jsv8...─ package.json└── serverless.yml在您的服务中安装serverless-aliyun-function-compute
整理自赛迪网的Javascript教程,word版本。可以参考一下。
比较全面和严谨的且包含很多中文的部分,打开后请点击: 开始看 Enter>> 进入JavaScript目录
廖雪峰老师官方的JavaScript教程的PDF版本
未来使用的Javascript函数
jssha256 is a compact JavaScript implementation of the SHA256 secure hash function.