js通过Class Name获取一个对象的数组
2011-11-02 17:22
351 查看
DOM提供了一个名为getElementById()的方法,这个方法将返回一个对象,这个对象就是参数id所对应的元素节点。另外,getElementByTagName()方法会返回一个对象的数组,每一个对象分别对应着文档里有给定标签的一个元素。这个方法的参数是html标签的名字。现在我们考虑一个问题,能不能通过标签的类名class
name来获取该对象呢?下面是这个猜想的程序实现(支持多个class查询和在某个范围内进行查询):
测试
name来获取该对象呢?下面是这个猜想的程序实现(支持多个class查询和在某个范围内进行查询):
/* |
02 | * 根据元素clsssName得到元素集合 |
03 | * |
04 | * |
05 | * |
06 | */ |
07 | function getElementsByClassName(fatherId,tagName,className){ |
08 | node |
09 | tagName "*" ; |
10 | className " " ); |
11 | var classNameLength |
12 | for ( var i=0,j=classNameLength;i<j;i++){ |
13 | //创建匹配类名的正则 |
14 | className[i]= new RegExp( "(^|\\s)" + "\\-" ) "(\\s|$)" ); |
15 | } |
16 | var elements |
17 | var result |
18 | for ( var i=0,j=elements.length,k=0;i<j;i++){ //缓存length属性 |
19 | var element |
20 | while (className[k++].test(element.className)){ //优化循环 |
21 | if (k |
22 | result[result.length] |
23 | break ; |
24 | } |
25 | } |
26 | k |
27 | } |
28 | return result; |
29 | } |
< div id = "container" > |
2 | < span class = "aaa ></ span > |
3 | < div class = "aaa ></ div > |
4 | </ div > |
5 | < div class = "aaa ></ div > |
1 | window.onload function (){ |
2 | alert(getElementsByClassName(document, "div" , "aaa ccc" ).length); //2 |
3 | alert(getElementsByClassName( "container" , "div" , "aaa ccc" ).length); //1 |
4 | alert(getElementsByClassName( "container" , "span" , "aaa zzz" ).length); //1 |
5 | } |
相关文章推荐
- js通过Class Name获取一个对象的数组
- JavaScript通过Class Name获取一个对象的数组
- 一个js获取数组下标的函数
- js判断一个对象为数组的方法
- 每日一个js实例7--通过面向对象实现选项卡
- 通过一个uri获取一个Bitmap对象
- Reflect 通过反射获取自定义注解值给另外一个对象赋值
- 通过js从后台数据库拿到值,再由a标签向jsp传值,再通过另外一个js获取这个值
- js 获取一个对象中的所有属性
- js获取对象,数组所有属性值(key)和对应值(value)的方法
- JavaScript中通过数组索引方式访问和属性名方式访问对象属性的一个小小误区
- php 不能通过表单获取所有select的值,用js赋值一个隐藏域
- 通过 document.getElementsByName 获取数组对象,传递多个值
- js 中如何把一个普通的字符串转化为数组对象呢
- js获取对象、数组的实际长度,元素实际个数的实现代码
- JS 利用 for in 循环获取 一个对象的所有属性以及值
- js判断一个对象数组里是否存在某个元素
- js 的数组怎么push一个对象
- js 一个对象的属性名是一个变量如何设置和获取值
- js--判断一个对象是否为数组