加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > 正文

JS批量获取class定名节点 getElementsByClassName()

发布时间:2018-09-14 13:14:53 所属栏目:创业 来源:站长网
导读:JS批量获取class定名节点 getElementsByClassName() getElementsByClassName() 是一个老的要领了,将其优化清算后给各人提供。 代码如下: // 批量获取class定名节点 function getElementsByClassName(className, tag, parent){ var parent = parent || doc
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定名节点。

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读