一、事件委托
事件委托也叫事件代理,“事件代理”即是把原本需要绑定在子元素的响应事件 委托给父元素。事件代理的原理是DOM元素的事件冒泡
利用事件委托的性能肯定比双重for循环的方式更好
例如:
通过函数事件源e对象里面的方法:target获取里面的子元素;
但是用e.target会有一个问题,当触摸到li的前面的时候,会触发碰到ul,全体变红;
所以我们要把ul本身存在的padding值去掉,要设置样式的时候,就用li去撑,就尽量避开设置ul的样式;
二、正则表达式方法
检测一个字符串是否与正则相匹配
1、test
reg.test(string) =》返回值为布尔值 true匹配,false不匹配
2、exec
reg.exec(string)=》匹配成功返回数组,并确定其位置,否则返回null
String类中可以支持正则的方法:
3、search
search =》返回匹配字符串的下标,否则返回-1
4、match
match=》如果没有找到任何匹配的文本, 返回 null。否则,它将返回一个数组(依赖于是否具有全局标志 g)
5、replace
replace=》返回一个新的字符串
6、split
split=》返回一个字符串数组
三、正则表达式
1、构造函数方式
构造函数:var reg=new RegExp( pattern,modifiers);
Pattern 表达式
Modifiers 修饰符
例如:匹配a可以匹配到返回true
例如:匹配如果要匹配A需要添加修饰符i(表示不限大小写)+ ' '变成字符串
2、字面量方式
var reg=/pattern/modifiers;
四、 常用的表达式
[ ] 表示其中的任意一个
[a-z]
查找任何从小写 a 到小写 z 的字符 字符中只要有一个满足就是true
例如:
其中b和c满足条件 满足“字符中只要有一个满足就是true” 原理
[A-Z]
查找任何从大写 A 到大写 Z 的字符 字符中只要有一个满足就是true
例如:
查找的不满足大写 所以返回false
[0-9]
查找任何从 0 至 9 的数字 字符中只要有一个满足就是true
例如:
如果查找的不是0-9的数字就会显示false
[abc]
查找括号内的任意一个字符 字符中只要有一个满足就是true
[^abc]
查找除了括号内的任意字符 字符中只要有一个满足就是true
例如:
查找除了括号内efg之外的任意字符 尽管最后字符里为abce有e 返回的也是true 因为abc满足条件了 遵循"字符中只要有一个满足就是true"原理 所以是true
匹配多个表达式例:
例如:
/[a-zA-Z]/
五、常用的元字符(特殊字符)
\w
匹配数字、字母、下划线
例如:
“-” 不是数字、字母、下划线 所以是false
\W
匹配非数字、字母、下划线
\d
匹配数字
\D
匹配非数字
\s
匹配空白字符(空格、换行)
\S
匹配非空白字符 换行就会产生空格 所以\n会显示false
例如:
\n
匹配换行符 只匹配\n换行符 空白和空格都不匹配