JQuery高级

简介: JQuery高级

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(超重点)

读作:啊贾克斯,此处留一个悬念,下回详细分解。

了解常用参数。


相关文章
|
JavaScript 前端开发 索引
|
JavaScript 前端开发 API
06-老马jQuery教程-jQuery高级
1.jQuery原型对象解密 jQuery里面的大部分API都是在jQuery的原型对象上定义的。jQuery源码中对原型对象做了简写的处理。也就是说:jQuery.fn === jQuery.prototype,参考jQuery源码: .
1582 0
|
前端开发 JavaScript
|
JavaScript
jQuery高级事件---模拟操作和命名空间
版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/twilight_karl/article/details/73335845 模拟操作 trigger() 浏览器自行触发事件.例如:当网页加载完毕后浏览器自行点击一个按钮触发一个事件,而不是用户去点击。
907 0
|
JavaScript
jQuery高级事件---on、off、one和事件委托
版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/twilight_karl/article/details/73335871 on、off、one jQuery1.7 以后推出了.on()和.off()方法,替代之前的方法。
1045 0
|
JavaScript
jquery高级函数
.get() 将jq对象转成js $('#div1').get(0).innerHTML.text() 给标签添加文本 .detach() 和remove方法一样,但保留删除元素的所有行为$('div').
910 0