document.getElementsByClassName:简单的原生通过className查找元素,可指定多个样式名称进行查找
来源:互联网 发布:创建网络连接,链接不上 编辑:程序博客网 时间:2024/05/17 06:50
<script type="text/javascript">//仅为使用习惯保留document.getElementsByClassName()调用方式,无法使用链式访问HTMLDocument.prototype.getElementsByClassName=function(){ if(!arguments[0]){return []};//未指定任何参数,直接返回 var args=arguments, a=args[0],//要查找的样式名称 b=typeof(args[1])=='string' && args[1]||'*',//指定的标签 c=((typeof(args[1])!='string' && args[1]) || args[2])||this,//在指定的容器内查找 d=a.split(' '),//样式名称列表 e=d.length,//待查找的样式总数 f=e>1,//是否查找多个样式 g={},//存储所有样式:for IE h=[];//最终对象存储 if(f){ for(var i=0;i<e;i++){ g[d[i]]=!0; } }else{ g[a]=!0; }; if(document.all || (!document.all && f)){ var o=c.getElementsByTagName(b); for(var i=0;i<o.length;i++){ var temp=o[i].className.split(' '); if(temp.length>1){ for(var j=0;j<temp.length;j++){ if(g[temp[j]]){ h.push(o[i]); break; } } }else{ if(g[temp[0]]){ h.push(o[i]); } } } }else{/*if(f){ for(var n=0;n<e;n++){ var k=c.getElementsByClassName(d[n]); for(var i=0;i<k.length;i++){ h.push(k[i]) } }; }*/ h=c.getElementsByClassName(a);//非IE标准浏览器:为保证元素的原有索引,仅在指定查找一个样式时使用此方法 }; return h;};
</script>参数说明:参数1:待查找的样式,可指定多个,用空格分隔;未指定时直接返回参数2:[可选项]可指定查找的特定标签,默认为:遍历所有标签*参数3:[可选项]指定父容器,默认为:document可跳过第2个参数直接指定第3个参数。测试DOM:<div class="c">我在id=parent的层以外</div><div id="parent"> <div class="c">1</div> <div class="c">2</div> <div class="c">3</div> <div class="c">4</div> <div class="c">5</div> <div class="b">56</div> <div class="b">78</div> <span class="c">9</span></div><script type="text/javascript">//下面调用,仅返回parent内部,div的样式符合条件的元素var o=document.getElementsByClassName("c b",'div',document.getElementById('parent'));for(var i=0;i<o.length;i++){ alert(o[i].innerHTML)};//下面调用,返回div的样式符合条件的元素var o=document.getElementsByClassName("c b",'div');for(var i=0;i<o.length;i++){ alert(o[i].innerHTML)};//下面调用,仅返回parent内部,所有样式符合条件的元素var o=document.getElementsByClassName("c b",document.getElementById('parent'));for(var i=0;i<o.length;i++){ alert(o[i].innerHTML)};//下面调用,返回所有样式符合条件的元素var o=document.getElementsByClassName("c b");for(var i=0;i<o.length;i++){ alert(o[i].innerHTML)};</script>
- document.getElementsByClassName:简单的原生通过className查找元素,可指定多个样式名称进行查找
- 21、Dom元素的灵活查找--通过className条件筛选
- 原生js 查找 添加 删除 指定元素的class
- 根据原生JS封装函数,根据传递的选择器查找对应的元素以及解决getElementsByClassName() 兼容问题
- 多个相同classname的控件中查找子控件(父控件text、resource-id为空,classname不是唯一...)
- javascript通过className来获取元素的简单示例代码
- C# 查找指定名称的控件
- jQuery通过CSS()方法给指定的元素同时设置多个样式
- 原生JS查找同辈元素
- 查找数组里的指定元素
- 二叉查找树查找指定排名元素的算法
- 通过.IndexOf查找指定的内容实例
- 通过xpath查找指定的节点
- 通过xpath查找指定的节点
- 通过className获取元素的js
- 原生JS实现元素的getElementsByClassName()方法,适用于多个类名
- 《数据结构、算法与应用》8.(顺序查找数组中第一个出现指定元素的位置)
- ie不支持getElementsByClassName,所以要自己实现获取类名为className的所有元素。
- 关于Manacher算法
- uva 10603 倒水 bfs
- Ubuntu下tftp服务器的配置
- Android 如何监听返回键,弹出一个退出对话框
- 博客集中下
- document.getElementsByClassName:简单的原生通过className查找元素,可指定多个样式名称进行查找
- 类似chrome在dock图标上添加任务进度圆饼
- SecurityCam.v1.4.0.4.Incl.Keymaker-CORE
- 数据结构:红黑树
- Centered.Systems.Second.Copy.v8.1.0.13.Incl.Keygen-Lz0
- VeryAndroid.SMS.Backup.v3.1.Incl.Keygen-Lz0
- S3C2440裸机实验之clock(时钟设置)
- Putty中文乱码的解决方法
- SQL SERVER BI 入门:(1)安装与基础概念