为了账号安全,请及时绑定邮箱和手机立即绑定

常用工具类JS之手动添加"class"标签样式

标签:
JavaScript

在写代码的过程中,怎么样手动添加一个样式呢?
我们知道,在VUE中,通过 ref很容易得到一个样式的dom

<div class="group" ref="group">
      <slot>
      </slot></div>

在这个template中,我们通过this.children = this.$refs.group.children就很容易或者<div class="group">这个元素的子元素,但是,如果我们想给这些子元素手动添加一个css样式,那怎么样写一个方法呢?比如addClass(child, item')
其实很容易,通常在一个项目中,我们都会建立一个common文件夹保存一些工具类的js文件,我们可以新建一个dom.js,来保存下面的代码。

export function hasClass(el, className) {  let reg = new RegExp('(^|\\s)' + className + '(\\s|$)')  return reg.test(el.className)
}export function addClass(el, className) {  if (hasClass(el, className)) {    return
  }  let newClass = el.className.split(' ')
  newClass.push(className)
  el.className = newClass.join(' ')
}

这个文件很容易看懂,用正则表达式检查这个元素有没有这个class,有的话直接返回,没有的话加上。
例如:

this.children = this.$refs.group.childrenfor (let i = 0; i < this.children.length; i++) {      let child = this.children[i]
      addClass(child, 'item')
}

这样的话,就能给元素添加样式标签了,当然,前提是item标签已经在当前css文件里面存在。



作者:fred_33c7
链接:https://www.jianshu.com/p/68088913477c


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
205
获赞与收藏
1008

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消