老师能详细解释一下这条函数吗

来源:5-2 基本函数

CC陈十一

2019-04-04 14:09:46

setCls( element,baseCls.split(cls).join(' ').replace(/\s+/g,' ') );

视频中13:02的地方。主要是baseCls.split(cls).join(' ').replace(/\s+/g,' '这段看着不是很懂

谢谢老师了

写回答

1回答

好帮手慕慕子

2019-04-04

同学你好, 视频中是在删除元素样式delCls函数中调用的setCls( element,baseCls.split(cls).join(' ').replace(/\s+/g,' ') ); 这里可以这样理解:

  1. setCls函数是为元素设置样式的,

  2. element 表示为要删除样式的元素

  3. cls 表示指定删除的类名

  4. baseCls 是获取当前元素element的所有class类名

  5. split() 是将字符串分割成数组,如果传递参数表示从指定的参数位置开始将字符串分割成数组。利用这种特性, 删除元素的样式, 例:下面的例子分割成数组后,数组中没有c这个元素了

    http://img.mukewang.com/climg/5ca5c5bc0001c6d303540066.jpg

  6. join() 将数组拼接成字符串,这里传入空格, 表示使用空格拼接字符串

  7. replace(param1, param2) 字符替换方法, 接收两个参数, 第一个参数可以使用正则表达式匹配要被替换的字符, 第二个参数表示准备替换的字符串

  8. /\s+/g 表示全局匹配任意个空白字符,

所以baseCls.split(cls).join(' ').replace(/\s+/g,' ')这句代码就是, 将元素本来拥有的所有class类名通过split()方法把需要删除的样式删除了,得到一个新的数组, 然后再通过join()方法将数组拼接成字符串,最后替换字符串中多余的空白字符。达到实现删除指定类名的方法

如果帮助到了你 欢迎采纳

祝学习愉快~~~

1

0 学习 · 40143 问题

查看课程