精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (8)
|
|
---|---|
作者 | 正文 |
发表时间:2011-04-29
最后修改:2011-05-02
<div id="abc" class="same new yes">1111111</div> 改进版 只有一行 function removeClass(value){ var kls,reg=1>0 &&(kls=this.className,reg=new RegExp('(^| )'+value+'( |$)'),reg.test(this.className) && (this.className=(kls.replace(reg,'$1')).replace(/ $/,''))); return this; }; function addClass(value){ var reg=1>0 &&(reg=new RegExp('(^| )'+value+'( |$)'),reg.test(this.className) || (this.className==='' ? (this.className=value) : (this.className+=(' '+value)))); return this; }; ///removeClass.call(document.getElementById('abc'),'new'); //addClass.call(document.getElementById('abc'),['new saw try']) 一次添加多个样式 addClass.call(addClass.call(removeClass.call(document.getElementById('abc'),'new'),'game'),'beta'); javascript确实很有意思 语法灵活 就看怎么玩 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-04-29
class属性可以换行写,可以有\r\n\t空格等字符,多处理些吧
|
|
返回顶楼 | |
发表时间:2011-04-29
int08h 写道 class属性可以换行写,可以有\r\n\t空格等字符,多处理些吧
还能这样呀 没写过复杂的class属性,一般就只有一个 |
|
返回顶楼 | |
发表时间:2011-04-29
理论上class的分隔符是\r\n\t空格和一个分页符,最后那个分页符几乎没人用所以忽略吧,\r\n\t和空格还是都要判断到的,比如
<div class="a b c"></div> 这样是合理的 |
|
返回顶楼 | |
发表时间:2011-04-29
最后修改:2011-04-29
我是在写方法 不是在写类库 你非要那么干 之能不支持
|
|
返回顶楼 | |
发表时间:2011-04-29
……不就是把你的正则改一下么,又没说不能实现,唉……关键是你的方法给自己用还是想给大家通用
|
|
返回顶楼 | |
发表时间:2011-04-29
大部分人都不会那么写的 在大部分人用 那些额外的匹配不是白白浪费资源 没必要为1%的人开发110%的代码
|
|
返回顶楼 | |
发表时间:2011-04-29
enix2212 写道 大部分人都不会那么写的 在大部分人用 那些额外的匹配不是白白浪费资源 没必要为1%的人开发110%的代码
不必浪费匹配资源。方法多个参数就行了,也就是多两行代码而已。 |
|
返回顶楼 | |
发表时间:2011-04-29
为的是把10行代码搞成一行 现在又要搞回去? 我写样式肯定不会敲回车 如果有需要 你自行修改 再说 我也不相信你每次写样式都会敲回车吧 那这些判断 有何意义
|
|
返回顶楼 | |
发表时间:2011-04-29
算了,每个人都有自己的坚持自己的理念,编程说低端点就是敲敲键盘,说高端点其实是每个人自己的哲学,也没啥好争的
|
|
返回顶楼 | |