扫码关注官方订阅号
这里要实现的是class 的增和删。比如
看这个意思是,如果 "cls" 出现在开头或者结尾,或者前后有空格,就把它删掉?
至于为什么不管用,你提供的信息量太少,也不知道你的 className String 到底是什么。。只能猜: 1. 对于 \s 没有定义数量,因此有一个空格的时候能替换,但如果有两个,就会留下空格。 2. 如果空格之后,cls 之间还有别的文字,那是肯定替换不了的
className
\s
cls
麻烦你多提供一些信息,比如要替换的字符串是什么样的,或者你到底要实现什么
OK,明白了。但你说 “增删”,但其实你的截图中只能看到 “删”,看不到 “增”。
建议你先看一下这里:https://developer.mozilla.org...MDN 提供了两种方式,推荐的肯定是用 .classList,就算浏览器不支持,底下也提供了 polyfill。
.classList
何必要自己再造个轮子呢。如果要造,人家也帮你造好了:
请给出你的测试用例。
这是作死的节奏呀,className 不应该这么搞吧。
// remove two document.getElementById('p').classList.remove('two'); // remove two document.getElementById('p').classList.add('two');
<style type="text/css"> .one { color: red; } .two { border: 1px solid blue; } </style> <script type="text/javascript"> setTimeout(function(){ var o = document.getElementsByTagName('p')[0]; function fnRemoveClass(e,s){ if (Object.prototype.toString.call(e).indexOf('HTML') === -1 || typeof s !== 'string') return; var re = new RegExp('(\\b|^)' + s + '(\\s|$)','g'); console.log(e.className = e.className.replace(re,'')); } fnRemoveClass(o,'two'); },0); </script> <p class="one two">demo</p>
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
看这个意思是,如果 "cls" 出现在开头或者结尾,或者前后有空格,就把它删掉?至于为什么不管用,你提供的信息量太少,也不知道你的classNameString 到底是什么。。只能猜:1. 对于\s没有定义数量,因此有一个空格的时候能替换,但如果有两个,就会留下空格。2. 如果空格之后,cls之间还有别的文字,那是肯定替换不了的麻烦你多提供一些信息,比如要替换的字符串是什么样的,或者你到底要实现什么OK,明白了。但你说 “增删”,但其实你的截图中只能看到 “删”,看不到 “增”。
建议你先看一下这里:https://developer.mozilla.org...
MDN 提供了两种方式,推荐的肯定是用
.classList,就算浏览器不支持,底下也提供了 polyfill。何必要自己再造个轮子呢。如果要造,人家也帮你造好了:

请给出你的测试用例。
这是作死的节奏呀,className 不应该这么搞吧。