getElmentsByClassName用法
2016-09-19 22:33
393 查看
JS批量获取class命名节点 getElementsByClassName()
getElementsByClassName() 是一个老的方法了,将其优化整理后给大家提供。
代码如下:
// 批量获取class命名节点
function getElementsByClassName(className, tag, parent){
var parent = parent || document;
var tag = tag||"*";
if(!(parent = F$(parent))){return false;}
// 查找所有匹配标签
var allTags = (tag == "*" && parent.all) ? parent.all : F$$(tag, parent);
var classElements = [];
// 创建一个正则表达是来判断className的正确性
className = className.replace(/\-/g, "\\-");
var regex = new RegExp("(^|\\s)" + className + "(\\s|$)");
var elenemt;
// 检查每个元素
for(var i=0; i<allTags.length; i++){
elem = allTags[i];
if(regex.test(elem.className)){
classElements.push(elem);
}
}
return classElements;
};
getElementsByClassName(className, tag, parent)接受三个参数:
className:要获取节点的class名称
tag:命名class的标签 可选项 默认表示“*”所有标签
parent:父节点之下的所有内容,也就是获取的范围,可选项 默认表示"document"
实例:
HTML:
<p class="main" id="main">
<a href="#" class="my">这是链接</a>
<span class="my">1</span>
<span id="sss">2</span>
<span class="my ttt">3</span>
<span>4</span>
</p>
执行:getElementsByClassName("my", "span", document.getElementById("main"));
或得到的将是包含 SPAN1、SPAN3 两个个节点的数组 『其中不包含A标签这个节点,因为参数中指定必须是span才提取』。
还有如下实例:
getElementsByClassName("my") // 获取文档中所有.my 节点
getElementsByClassName("my", "span") // 获取文档下以.my命名的span节点
getElementsByClassName("my", "*", document.getElementById("main")) // 获取#main下的所有.my命名节点。
getElementsByClassName() 是一个老的方法了,将其优化整理后给大家提供。
代码如下:
// 批量获取class命名节点
function getElementsByClassName(className, tag, parent){
var parent = parent || document;
var tag = tag||"*";
if(!(parent = F$(parent))){return false;}
// 查找所有匹配标签
var allTags = (tag == "*" && parent.all) ? parent.all : F$$(tag, parent);
var classElements = [];
// 创建一个正则表达是来判断className的正确性
className = className.replace(/\-/g, "\\-");
var regex = new RegExp("(^|\\s)" + className + "(\\s|$)");
var elenemt;
// 检查每个元素
for(var i=0; i<allTags.length; i++){
elem = allTags[i];
if(regex.test(elem.className)){
classElements.push(elem);
}
}
return classElements;
};
getElementsByClassName(className, tag, parent)接受三个参数:
className:要获取节点的class名称
tag:命名class的标签 可选项 默认表示“*”所有标签
parent:父节点之下的所有内容,也就是获取的范围,可选项 默认表示"document"
实例:
HTML:
<p class="main" id="main">
<a href="#" class="my">这是链接</a>
<span class="my">1</span>
<span id="sss">2</span>
<span class="my ttt">3</span>
<span>4</span>
</p>
执行:getElementsByClassName("my", "span", document.getElementById("main"));
或得到的将是包含 SPAN1、SPAN3 两个个节点的数组 『其中不包含A标签这个节点,因为参数中指定必须是span才提取』。
还有如下实例:
getElementsByClassName("my") // 获取文档中所有.my 节点
getElementsByClassName("my", "span") // 获取文档下以.my命名的span节点
getElementsByClassName("my", "*", document.getElementById("main")) // 获取#main下的所有.my命名节点。
相关文章推荐
- 校招第二站-----爱数
- HDU 2824
- 第五百零九天 how can I 坚持
- HDU 5882 Balanced Game
- [javaEE] 反射-通过反射了解集合泛型本质
- 判断一个点是否在三角形内
- 性能测试工具总结
- 抽象类与接口的思考
- Makefile中指示符“include”、“-include”和“sinclude”的区别
- 用Spring MVC开发简单的Web应用
- C与C艹的内存管理方式
- HDU 5884 Sort
- Lock接口中的几个方法讨论
- 你只看到别人表面的光鲜,却看不到他们背后的付出和努力
- HDU5112【水】
- 反转单链表的几种方法
- linux系统分区day0919
- 实验二:跨交换机实现VLAN
- 2016 ACM/ICPC Asia Regional Shenyang Online HDU 5894 hannnnah_j’s Biological Test
- 21、在选择的时候跳到另一页面上,选择男女,然后提交表单内容