1.正则在js的使用方法
列一个变量,存储正则规则,用这个变量去test某个数据-----匹配True和不匹配False
var re = new RegExp(规则,正则表达式的参数)
g全文搜索
i表示忽略大小写
var re = /规则/正则的参数
使用:re.test(数据)
1 <script>
2 // 列一个变量,存储正则规则; 用这个变量去test某个数据 -- 匹配true 不匹配false
3 // g 全文搜索 i表示忽略大小写
4 // var re = new RegExp(规则, 正则表达式的参数)
5
6 // var re = /规则/正则的参数
7 var re = /a/
8 var str1 = 'abc'
9 var str2 = 'ABC'
10 // re.test(数据)
11 // alert(re.test(str1))
12 alert(re.test(str2))
13 </script>
在工作中,在查找到东西的时候,都用变量存一下,方便后期使用。jQuery中定义变量的时候,一般命名用$开头。同事一看就知道是使用了jQuery,然后使用jQuery的语法。
其实$是jQuery中的一个函数。
js里面命名的时候可以是数字、字母、下划线或者美元符号。是没有问题的。
在工作中写代码的时候,每一个功能实现的时候要加注释,方便协同工作,养成良好的习惯。当在入口函数里面的事件的时候,如果有大段的代码,一般工作中都是在外面封装一个函数,然后在事件中进行调用。
工作中正则一般自己不用写,网上大量现成的,因为国内很多网站用的都是相同的规则,我们直接使用即可,这样的话,提高了开发效率。(后面附一份常用的,共大家参考)
函数里面没有this,事件里面才有this
默认勾选中的checked的值是True,并不是checked的字符串。
开关其实就是全局变量
2.***事件冒泡
现象:父子级标签 触发子级的事件,这个事件会逐层向父级传递。
子集执行了某一事件,会逐层向上触发相同事件,直到被处理或者遇到return。比如子级有单击事件,那么父级如果有单击事件也会被触发,父级的父级如果有单击事件也会被触发。
任何一个操作,计算机或者浏览器都会去处理。不管你有没有设置对应的事件。
冒泡机制有两面性,需要用的时候,别去管,要阻止的时候可以停止。return是工作中常用的,另一种需要在function的括号中传入形参,一般为event。
return false ----阻止表单提交、阻止时间冒泡
1<!DOCTYPE html>
2<html lang="en">
3<head>
4 <meta charset="UTF-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
6 <meta http-equiv="X-UA-Compatible" content="ie=edge">
7 <title>Document</title>
8 <style>
9 .father{
10 width: 300px;
11 height: 300px;
12 background: green;
13 }
14 .son{
15 width: 200px;
16 height: 200px;
17 background: pink;
18 }
19 </style>
20 <script src="js/jquery-1.12.4.min.js"></script>
21 <script>
22 $(function(){
23 $('.father').click(function(event){
24 alert('father')
25 return false
26 // event.stopPropagation()
27 })
28 $(document).click(function(){
29 alert('document')
30 })
31 })
32 </script>
33</head>
34<body>
35 <div class="father">
36 <div class="son">1</div>
37 </div>
38</body>
39</html>
3.事件委托
把子级的事件委托给父级(父:最近的能包含住将来发生事件的所有子级)------ 事件代理
.delegate(真实发生事件的目标,字符串事件属性,匿名函数去写命令function(){})
工作中有可能会有人用这个词on() ,下面两种用法
------完全等同delegate
------只找到将来发生事件的目标绑定on()
事件委托两个作用:1、提高了代码执行效率2、可以给未来元素绑定命令
通过程序追加的标签叫做未来元素。
之前的click是只能给已有的元素绑定命令,事件委托则是既给已有的绑定命令,又可以给未来元素绑定命令。
on的第二种用法:只给未来元素绑定命令的意思是没有提高代码效率,而是起到了给现在已有和未来元素绑定命令。
1<!DOCTYPE html>
2<html lang="en">
3<head>
4 <meta charset="UTF-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
6 <meta http-equiv="X-UA-Compatible" content="ie=edge">
7 <title>Document</title>
8 <script src="js/jquery-1.12.4.min.js"></script>
9 <script>
10 $(function(){
11 // 单击li,弹出这个li的下标
12 // $('li').click(function(){
13 // alert( $(this).index() )
14 // })
15 // 1、***** $('#myul').delegate(真实发生事件的目标, 字符串事件属性, function(){})
16 // $('#myul').delegate('li', 'click', function(){
17 // alert( $(this).index() )
18 // })
19 // on() -- 有两种用法:完全等同delegate 和 只找到将来发生事件的目标绑定on()
20 // 2、******$('#myul').on(字符串形式的事件属性, 发生事件的真实目标, 匿名函数)
21 // $('#myul').on('click', 'li', function(){
22 // alert( $(this).index() )
23 // })
24
25 // 3、*****$('li').on(字符串形式的事件属性, 匿名函数) // 表示只是在(没有作用1提高代码执行效率优点)给未来的li绑定事件而已
26 $('li').on('click', function(){
27 alert( $(this).index() )
28 })
29
30 // 事件委托:1、提高代码执行效率;2、可以给未来元素绑定命令:已有和未来标签
31 })
32 </script>
33</head>
34<body>
35 <ul id="myul">
36 <li>文字1</li>
37 <li>文字2</li>
38 <li>文字3</li>
39 <li>文字4</li>
40 <li>文字5</li>
41 <li>文字6</li>
42 <li>文字7</li>
43 <li>文字8</li>
44 </ul>
45</body>
46</html>
4.DOM操作
Document object model 文档对象模型
作用:查找标签的方法、查找标签的标准。
最终是通过js内置的结构化表现手法,将网页中的所有html节点查找到,然后实现一个倒置的树状结构图,这个树状结构图就叫DOM树。
标签===标记====元素 < 节点(包含标签、标签的内容、标签的属性)
网页文档的根:html标签
html的子标签是head和body
纯前端会学很多东西,后端不需要了解全部,知道其中的原理即可。
冒泡也是根据DOM树来找到父子级关系。
共计10个函数而已:
控制顺序------移动节点--------
下面的函数,如果没有节点,那么会新增对应的节点,如果有这个节点,那么就会移动相对应的节点。所以此处没有任何函数需要学习。
新增节点-------
步骤:
1、声明变量保存节点数据(名字一般为$开头,然后找的标签是什么就叫做什么)
2、使用追加函数将节点变量追加到指定位置
子级加:
append(添加的内容) 向末尾加
appendTo(目的地)
prepend()向前面加
prependTo(目的地)
父级加:
after()在同级的后面加
insertAfter(目的地)在同级的后面加
before()在同级别的前面加
insertBefore(目的地)
删除节点--------
remove() 删除
empty()清空
1<!DOCTYPE html>
2<html lang="en">
3<head>
4 <meta charset="UTF-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
6 <meta http-equiv="X-UA-Compatible" content="ie=edge">
7 <title>Document</title>
8 <script src="js/jquery-1.12.4.min.js"></script>
9 <script>
10 $(function(){
11 // 新增节点: 步骤 1、声明变量保存节点数据;2、使用追加函数将节点变量追加到指定位置
12 var $li = $('<li>22222</li>')
13 // $('ul').append( $li )
14 // $li.appendTo( $('ul') )
15 // $('ul').prepend( $li )
16 // $li.prependTo( $('ul') )
17
18 var $div = $('<div>divdiv</div>')
19 // $('ul').after( $div )
20 // $div.insertAfter( $('ul') )
21
22 // $('ul').before($div)
23 // $div.insertBefore($('ul'))
24
25 // $('ul').remove()
26 $('ul').empty()
27
28 })
29 </script>
30</head>
31<body>
32 <!-- 3 -->
33 <ul>
34 <!-- 1 -->
35 <li>11111</li>
36 <!-- 2 -->
37 </ul>
38 <!-- 4 -->
39</body>
40</html>
5.***js对象(ajax要用调用属性和函数的语法)
js的对象就是python中的字典。
创建对象的方法:
1、字典
var xx = {字典里面封装实例属性和方法}
2、new Object()
var xx = new Object()
对象名.属性 = 值
对象名.方法名 = 匿名函数
调用属性和函数:
对象名.属性名
对象名.方法调用
对象内部写对象名可以写this
JavaScript中没有$,只有jQuery中才有$
1<!DOCTYPE html>
2<html lang="en">
3<head>
4 <meta charset="UTF-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
6 <meta http-equiv="X-UA-Compatible" content="ie=edge">
7 <title>Document</title>
8 <script>
9 // var person1 = {
10 // 'name':'laowang',
11 // age: 80,
12 // say: function(){
13 // // 对象名.属性名
14 // alert(person1.name)
15 // alert(this.name)
16 // }
17 // }
18 // alert(person1.age)
19 // person1.say()
20
21 var person2 = new Object()
22 person2.name = 'ROSE'
23 person2.age = 20
24 person2.say = function(){
25 alert(person2.name)
26 alert(this.name)
27 }
28 alert(person2.age)
29 person2.say()
30 </script>
31</head>
32<body>
33
34</body>
35</html>
6.了解json
json是一种数据格式对象。
在ajax做数据交互的时候,json是用的最多的数据格式
用的最多的是列表、字典、字典列表相互嵌套等等,也有可能是文件
json特点之一:json中有字符串必须是双引号
json可以是文件,后缀名就是json

绝大多数是json文件,也有可能是其他的格式。
简单的认识一下,等讲ajax的时候再详细说明什么时候用。
1{
2 "name":"TOM",
3 "age":18
4}
7.*****ajax(超重点)
读作:啊贾克斯,此处留一个悬念,下回详细分解。
了解常用参数。