`
enix2212
  • 浏览: 25397 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

核心只要两行即可实现添加或移除className

阅读更多
<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确实很有意思 语法灵活 就看怎么玩
分享到:
评论
11 楼 achun 2011-04-30  
这个五一一睡醒,看到这个讨论,我就笑了
代码就算随心随意,开心就好
10 楼 jamesmos 2011-04-29  
enix2212 写道
为的是把10行代码搞成一行 现在又要搞回去? 我写样式肯定不会敲回车 如果有需要 你自行修改 再说 我也不相信你每次写样式都会敲回车吧 那这些判断 有何意义


你这种缩短代码的方式是用逻辑运算符和三元运算符来代替条件判断,最后是一行长过别人三行,效率还不一定高,意义大么?你发个自己写的东西在这里说有多短多短,结果是为你自己的需求量身定做的,别人要用还要自己进行逻辑上的完善,再短又有何意义?
9 楼 int08h 2011-04-29  
算了,每个人都有自己的坚持自己的理念,编程说低端点就是敲敲键盘,说高端点其实是每个人自己的哲学,也没啥好争的
8 楼 enix2212 2011-04-29  
为的是把10行代码搞成一行 现在又要搞回去? 我写样式肯定不会敲回车 如果有需要 你自行修改 再说 我也不相信你每次写样式都会敲回车吧 那这些判断 有何意义
7 楼 jamesmos 2011-04-29  
enix2212 写道
大部分人都不会那么写的 在大部分人用 那些额外的匹配不是白白浪费资源 没必要为1%的人开发110%的代码


不必浪费匹配资源。方法多个参数就行了,也就是多两行代码而已。
6 楼 enix2212 2011-04-29  
大部分人都不会那么写的 在大部分人用 那些额外的匹配不是白白浪费资源 没必要为1%的人开发110%的代码
5 楼 int08h 2011-04-29  
……不就是把你的正则改一下么,又没说不能实现,唉……关键是你的方法给自己用还是想给大家通用
4 楼 enix2212 2011-04-29  
我是在写方法 不是在写类库 你非要那么干 之能不支持
3 楼 int08h 2011-04-29  
理论上class的分隔符是\r\n\t空格和一个分页符,最后那个分页符几乎没人用所以忽略吧,\r\n\t和空格还是都要判断到的,比如
<div class="a
b
c"></div>
这样是合理的
2 楼 pywepe 2011-04-29  
int08h 写道
class属性可以换行写,可以有\r\n\t空格等字符,多处理些吧



还能这样呀
没写过复杂的class属性,一般就只有一个
1 楼 int08h 2011-04-29  
class属性可以换行写,可以有\r\n\t空格等字符,多处理些吧

相关推荐

    jQuery属性 toggleClass()方法添加和移除

    `classname`是CSS类名,是我们想要添加或移除的类。 2. **操作类的状态**: - 如果元素上还没有指定的`classname`,toggleClass()会将这个类添加到元素上。 - 如果元素上已经有了这个`classname`,toggleClass()...

    Javascript 检测、添加、移除样式(className)函数代码

    它创建了一个正则表达式,该表达式会在字符串`element.className`中查找类名的开始或结束处的空格或开头(这确保了类名前后没有多余空格)。如果匹配成功,说明元素包含该样式类,返回`true`;否则,返回`false`。 ...

    基于JavaScript实现类名的添加与移除

    方法1:使用className属性; 方法2:使用classList API; //用于匹配类名存在与否 function reg(name){ return new RegExp('(^|\\s)'+name+'(\\s+|$)'); } //hasClass addClass removeClass toogleClass var ...

    js实现简单的className不兼容问题

    使用封装的思想,简单的实现IE浏览器在javascript中对getElementsByClassName的不兼容问题,实现的方法简单,通俗易懂

    vue鼠标移入添加class样式,鼠标移出去除样式(active)实现方法

    本文将详细介绍如何在Vue项目中实现鼠标移入时添加一个class样式,而鼠标移出时则移除该样式(通常是添加或移除名为"active"的class),以及相关的实现方法和拓展知识。 首先,要在Vue组件中实现鼠标移入移出的...

    纯js实现行的添加删除

    本文将深入探讨如何使用纯JavaScript实现动态的行添加与删除功能,尤其关注在特定条件下的按钮显示逻辑。这个功能通常应用于表格或者列表的管理,比如在线表单、任务列表等。 首先,我们需要创建一个基础的HTML结构...

    查看ClassName的小工具

    查看ClassName的小工具,能看到任意控件的ClassName和Text属性

    图片添加相框的前端实现

    "图片添加相框的前端实现"这个主题,就是关于如何在不依赖大量美工作图的情况下,通过前端技术优雅地为图片添加相框。在实际应用中,这种需求通常出现在如瀑布流布局等场景,它能增加视觉效果,提升用户体验。 首先...

    判断文字超过2行添加展开按钮,未超过则不显示,溢出部分显示省略号

    以下是一个简单的JavaScript实现,用于检测元素的高度并根据需要添加或移除展开按钮: ```javascript // 遍历含有教师评语的元素 $('.teacher-review').forEach(function(v, i) { // 使用flexible.js进行移动端...

    javaScript给元素添加多个class的简单实现.docx

    ### JavaScript给元素添加多个class的简洁实现 #### 概述 在Web开发中,通过JavaScript动态地为HTML元素添加或删除CSS类名是一项常见的需求。本文档将详细介绍如何使用JavaScript来给HTML元素添加多个class,并...

    react-body-classname, 声明性嵌套状态化同构的body.className.zip

    react-body-classname, 声明性嵌套状态化同构的body.className react-body-classname 提供在 React App 中指定 document.body.className的声明方式。 支持服务器端使用。内置的反应副作用。安装yarn add react-bo

    页面滚动时为元素动态添加class类的jquery插件

    `jQuery-scrollAddclass` 插件正是为此而设计,它允许开发者在元素进入浏览器视口时为其添加预设的class,从而实现丰富的视觉效果。 ### 插件安装与引入 在使用`jQuery-scrollAddclass`之前,你需要确保已经引入了...

    jQuery点击添加到购物车动画代码

    jQuery通过选择器(如$("#elementID")或$(".className"))来定位DOM元素,然后可以对这些元素进行各种操作。在这个场景中,我们可能有一个或多个商品元素,它们可能具有特定的类名或ID,用于标识可添加到购物车的项...

    js 利用className得到对象的实现代码

    6. 实现样式的切换:在onmouseover事件中,将元素的className设置为“input_current”,而在onmouseout事件中则将className改回“input_ocurrent”,这样实现了鼠标悬停时的样式变化。 7. 页面加载时执行脚本:通过...

    jQuery.toggleClass() 函数详解

    `toggleClass()` 是 jQuery 库中的一个常用函数,用于切换(添加或移除)一个或多个 CSS 类名到被选元素上。此方法允许开发者根据条件动态地改变网页的样式。 #### 二、函数签名与版本历史 `toggleClass()` 方法...

    python学习day14.txt

    添加id或class属性,对应选择器,为元素添加样式 2. addClass('className') 将className作为值添加到元素的class属性上 是可以连缀调用的 $('h1').addClass('c1').addClass('c2')... 3. ...

    element-ui 的el-button组件中添加自定义颜色和图标的实现方法.docx

    添加自定义颜色和图标的实现方法可以分为两步:第一步,我们需要在 Element UI 的源码中添加一个自定义的全局指令;第二步,我们需要在项目公共的 js 中编写自定义的指令。 首先,让我们来添加自定义的全局指令。在...

Global site tag (gtag.js) - Google Analytics