【实用总结】DOM节点className操作

news/2024/7/7 19:14:59

经常用到的小工具函数,每次用到都重写一遍,有点浪费体力,于是决定分阶段整理下,需要用到的时候就直接拷过来用了~

对于dom节点的className,常用操作不外乎增、删、查(改可以用增+删事先),由于代码比较简单,直接上源码+接口注释

/*** @description 给节点添加类* @param {DOMObject} node dom节点* @param {String} className 即将添加的类名
*/
function addClass(node, className){var addClassName = trim(className);var oriClassName = node.className;if(oriClassName.indexOf(addClassName)===-1){node.className = oriClassName+ ' ' +className;}
}/*** @description 删除节点某个类* @param {DOMObject} node dom节点* @param {String} className 即将删除的类名
*/
function removeClass(node, className){var reg = new RegExp('\\b'+ trim(className) +'\\b', 'g');node.className = node.className.replace(reg, '');
}/*** @description 判断节点是否具有某个类* @param {DOMObject} node dom节点* @param {String} className 查询的类名* @return {Boolean} true-有,false-没有
*/function hasClass(node, className){return node.className.indexOf(trim(className))!==-1;
}/*** @description 删除字符串首尾空格* @param {String} str 原始字符串* @return {String} 删除了首位空格后的字符串* @example trim('   hello world ') === 'hello world'
*/
function trim(str){return str.replace(/^\s+/, '').replace(/\s+$/, '');
}

其他如同时添加多个类、同时删除多个类等,实现原理类似,不赘述


http://lihuaxi.xjx100.cn/news/244673.html

相关文章

Postman系列之@RequestBody修饰的对象传参数

请求地址:http://localhost:8283/api/tblContractPre/updateContractInfoToErp 请求参数: { "city":"深圳市", "uid":"张三", "deedsn":"PRE-HA180900061", "rooms…

Matlab之print,fprint,fscanf,disp函数

print: print函数可以把函数图形保存成图片: [plain] view plaincopy minbnd -4*pi; maxbnd 4*pi; t minbnd:0.1*pi:maxbnd; plot(t, sin(t), g, Linewidth, 2); line([minbnd, maxbnd], [0, 0]); %绘制x轴 axis([-10, 10, -2, 2]) %定义显示的坐标区…

一个free异常引发的异常

有同事反馈说自己的线程不工作,查看堆栈发现其打印如下: #0 0x00007f291f72e7be in __lll_lock_wait_private () from /lib64/libc.so.6 #1 0x00007f291f6c2e4e in _L_lock_9925 () from /lib64/libc.so.6 #2 0x00007f291f6c1101 in free () from /li…

房价与阶级

最近一线城市房价似乎大幅度飙升,有人说这是崩溃前夕的疯狂。今晨在微博上看到,王健林说未来20年一线城市的房价会持续上涨,评论区里被谩骂淹没。关于大城市房价,我没有能力做任何分析和预测。只对崩溃论发表一些想法。前几天逛汽…

高性能ORM框架XLinq功能详细介绍

之前简单介绍了XLinq的一些功能,有很多功能都没有提到,现在给XLinq加了一些功能,这次把所有功能都介绍一遍。 设计目标 易用性 在使用一个框架的时候 应该没几个人会喜欢写一大堆的配置文件吧 也应该没几个人会喜欢为了完成一个小功能却需要写…

Java面试题及答案整理( 2022年最新版,持续更新)

发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全~ 这套互联网 Java 工程师面试题包括了:MyBatis、ZK、Dubbo、EL、Redis、MySQL、并发编程、Java面试、Spring、微服务、Linux、Springboot、SpringCloud、MQ、Kafka…

EOS与以太坊有哪些区别?

想知道更多关于区块链技术知识,请百度【链客区块链技术问答社区】 链客,有问必答!!EOS与以太坊有哪些区别? 以太坊是一个专门为开发和运行去中心化应用(DAPP)搭建的智能合约平台;EOS…