原生javascript操作class-元素查找-元素是否存在-添加class-移除class
2024-10-15 10:33:28
//判断元素是否有class
function hasClass(ele, cls) {
return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}
//元素增加class
function addClass(ele, cls) {
if (!hasClass(ele, cls)) ele.className += " "+cls;
}
//元素移除class
function removeClass(ele, cls) {
if (hasClass(ele, cls)) {
var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
ele.className = ele.className.replace(reg, ' ');
}
}
/* className, rootId(限制范围id名), tagName(标签名称)*/
function getElementsByClassName(cls, rid, tag) {
root = rid && document.getElementById(rid) || document;
if (root.getElementsByClassName) {
return root.getElementsByClassName(cls);
}
tag = tag || '*';
var elems = root.getElementsByTagName(tag);
var ret = [];
for (var i = 0, len = elems.length; i < len; i++) {
var elem = elems[i];
if ((' ' + elem.className + ' ').indexOf(' ' + cls + ' ') > -1) {
ret.push(elem);
}
}
return ret;
}
最新文章
- php相对于java、js几点不太一样的地方
- 搭建git for windows服务器(100%可以成功)
- 【leetcode】Minimum Window Substring (hard) ★
- 如何为IIS增加svg和woff格式文件的支持
- DataTable 更改在有数据列的类型方法+DataTable 导出excel功能
- grep egrep fgrep命令
- WindowState注意事项
- Java虚拟机创建对象的内存分配以及对象的内存布局
- macvlan 网络隔离和连通 - 每天5分钟玩转 Docker 容器技术(57)
- BOM对象
- Java程序员的情书
- python 面向对象进阶之元类metaclass
- Revit 命令添加下拉框
- [转]c++访问python3-实例化类的方法
- Devexpress Gridview 自定义汇总CustomSummaryCalculate(加权平均)
- 2017-2018-2 《网络对抗技术》20155322 Exp8 web基础
- 面试题一:linux面试题
- python 面向对象 isinstance
- sqli-labs lession 5 之盲注型SQL入门
- 关于解决MySort