前端学习之-- Jquery

Jquery学习笔记

中文参考文档:http://jquery.cuishifeng.cn

Jquery是一个包含DOM/BOM/JavaScript的类库
引入jquery文件方法:<script src='jquery-1.12.4.js'></script>
调用jquery方法有以下2种
<script>
  jQuery 或者 $
</script>

Jquery版本系列包含:
1.X -> 推荐 兼容性更好IE8以下
2.X
3.X

Jquery和dom之间的转换方法:
jquery和dom输出的区别:jquery的输出是使用中括号[]包裹的,dom输出是直接输出的html标签样式。
jquery对象转换为dom方法:在jquery语句后面加上第0个元素[0],这时输出就转换为DOM对象。
如:首先需要导入jquery文件
  执行:$('#l1')
  jquery输出:[div#l1, context: document, selector: "#l1"]
  执行:$('#l1')[0]
  输出:<div id="l1">123</div>
DOM对象转换为jquery写法:在dom对象外使用$()包裹后,即刻转为jquery对象,如:$(DOM对象)
如:d =document.getElementById('l1')
  $(d) 转换为jquery
  输出:[div#l1, context: div#l1]


一:查找元素
DOM : 10个左右(get系列)
jquery分2种:
第一种选择器:直接找到某个或者某类标签
1:id选择器,根据标签内的ID进行查询。如:$('#l1')
2:class选择器,根据标签内的class进行查询。如:$('.l1')
3:标签选择器,根据标签名进行查询。如:$('div')
4:组合选择器,可以根据标签,ID,class名统一查询,如:$('div,#l1,.l1')
5:层级选择器
$('#i10 a') 先定位到i10标签,然后从其内部包含的所有标签中查找所有的a标签
$('#i10>a') 只在i10下的子标签中查找a标签
6:基本筛选器
:first 从查询结果中提取第一个元素
:last 从查询结果中提取最后一个元素
:even 筛选所有的基数行
:odd 筛选所有的偶数行
:eq(index) 根据索引查找
:header 找到所有的h标签
7:属性
$('[name]') 具有name属性的所有标签
$('[name="123"]') name属性等于123的标签
$("input[type='text']") # 这里第一步筛选input,然后找到type=text的所有标签
$(':text') 简写
jquery方法内置循环:
$('#tb:checkbox').each(function(k){
  // k 当前索引
  //this 是dom对象,代指当前循环的元素 $(this)
}
三元运算写法:var v = 条件 ? 真值 : 假值

实例见:jquery多选反选全选.html

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8     <input type="button" value="全选" onclick="checkAll();" />
 9     <input type="button" value="反选" onclick="reverseAll();" />
10     <input type="button" value="取消" onclick="channelAll();" />
11     <table border="1" >
12         <thead>
13             <th>选择</th>
14             <th>IP</th>
15         </thead>
16         <tbody id="tb">
17             <tr>
18                 <td><input type="checkbox"></td>
19                 <td>1.1.1.1</td>
20             </tr>
21             <tr>
22                 <td><input type="checkbox"></td>
23                 <td>2.2.2.2</td>
24             </tr>
25             <tr>
26                 <td><input type="checkbox"></td>
27                 <td>3.3.3.3</td>
28             </tr>
29         </tbody>
30     </table>
31     <script src="jquery-1.12.4.js"></script>
32     <script>
33         /* 获取id=tb下所有的checkbox属性标签,使用prop方法,如果后面带1个参数表示获取值,带2个参数表示赋值*/
34         function checkAll() {
35             $('#tb :checkbox').prop('checked',true)
36         }
37         function  channelAll() {
38             $('#tb :checkbox').prop('checked',false)
39         }
40         function reverseAll() {
41             /* each方法是循环获取的所有checkbox属性标签,然后通过函数对每个标签进行操作,k表示所有标签的索引*/
42             $(':checkbox').each(function (k) {
43                 /* DOM写法,this表示当前的标签
44                 if(this.checked){
45                     this.checked = false;
46                 }else{
47                     this.checked = true;
48                 }
49                 */
50                 /* jquery写法,这里用$(this)将doc标签转换为jquery格式
51                 if ($(this).prop('checked')) {
52                     $(this).prop('checked', false)
53                 } else {
54                     $(this).prop('checked', true)
55                 }*/
56                 // 写法3,三元运算,v = 条件? 值1:值2,当条件为真将值1赋予v,反之值2赋予v
57                 var v = $(this).prop('checked')?false:true;
58                 $(this).prop('checked',v)
59             })
60         }
61     </script>
62 </body>
63 </html>
View Code

第二种筛选器:在选择器选择后出现的多个符合条件的标签中,再次进行选择。
$(this).next() 当前标签的下一个兄弟标签
$(this).nextAll() 当前标签下面的所有兄弟标签(不包含兄弟标签中的子标签)
$(this).nextUntil('#ii1') 从当前标签开始向下查找到ID=II1的兄弟标签,提取这个区间范围的所有兄弟标签
$(this').prev() 当前标签的上一个兄弟标签
$(this).prevAll() 当前标签上面的所有兄弟标签(不包含兄弟标签中的子标签)
$(this).prevUntil('#ii1') 从当前标签开始向上查找到ID=II1的兄弟标签,提取这个区间范围的所有兄弟标签
$(this).parent() 当前标签的父标签
$(this).parents() 当前标签的所有父标签,直到<html>标签
$(this).parentsUntil('#ii1') 从当前标签开始向上查找直到一个父标签ID=ii1的标签结束,提取这个区间范围的所有标签
$(this).children() 当前标签的所有子标签
$(this).siblings() 当前标签的所有兄弟标签
$(this).find(样式名) 查找当前标签下的样式名
$(this).eq(1) 查找到的标签列表根据索引提取指定的标签
hasClass(class) 判断是否具有class这个样式
实例:菜单动态.html

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <style>
 6         .header{
 7             background-color:black;
 8             color:wheat;
 9         }
10         .content{
11             min-height:50px;
12         }
13         .hide{
14             display: none;;
15         }
16     </style>
17     <title>Title</title>
18 </head>
19 <body>
20     <div id='ii1' style="height:400px;200px;border:1px solid red;">
21         <div class="item">
22             <div id='i11' class="content hide">内容一
23                 <div class="ct2">test</div>
24             </div>
25             <div id='i22' class="content hide">内容2</div>
26             <div id='i33' class="content hide">内容3</div>
27             <div class="header">标题一</div>
28             <div id='i1' class="content hide">内容一
29                 <div class="content2">test</div>
30             </div>
31             <div id='i2' class="content hide">内容2</div>
32             <div id='i3' class="content hide">内容3</div>
33         </div>
34         <div class="item">
35             <div class="header">标题二</div>
36             <div class="content hide">内容二</div>
37         </div>
38         <div class="item">
39             <div class="header">标题三</div>
40             <div class="content hide">内容三</div></div>
41         <div class="item">
42             <div class="header">标题四</div>
43             <div class="content hide">内容四</div>
44         </div>
45     </div>
46     <script src="jquery-1.12.4.js"></script>
47     <script>
48         $('.header').click(function () {
49             //当前点击的标签 $(this)
50             // 获取某个标签的下一个标签
51             // 获取某个标签的父标签
52             // 获取所有的兄弟标签
53             //添加样式和移除样式
54             //  $('#i1').addClass('hide')
55             //  $('#i1').removeClass('hide')
56             // 利用筛选器
57             /*
58             $(this).next()  //获取当前标签的下一个标签
59             $(this).prev()  //获取当前标签的上一个标签
60             $(this).parent()  //获取当前标签的父标签
61             $(this).children()  //获取当前标签的子标签
62             $(this).siblings()  //获取当前标签的所有兄弟标签
63             $(this).find('#i1') //查找并获取当前标签内ID为i1的标签(子子孙孙中查找)
64             */
65             console.log($(this).parentsUntil('#ii1'))
66             $(this).prevAll().removeClass('hide')
67             $(this).parent().siblings().find('.content').addClass('hide')
68             // 支持链式编程
69             // $(...).click() 这里的click是绑定事件
70             // $(this).next().remove('hide').parent().siblings().find('.content').addClass('hide')
71         })
72     </script>
73 </body>
74 </html>
View Code

文本操作:
$(..).text() # 只获取文本内容,不获取内部的html标签
$(..).text("<a>1</a>") # 设置文本内容,内容中的html标签不会进行解析,统一以字符串新式出现。
$(..).html() #获取文本内容,文本内容中的html标签也会以字符串形式获取到。
$(..).html("<a>1</a>") #设置文本内容,字符串中的html标签在设置时将会进行解析,将解析后的1进行赋值。
以下val适用于input之类的具有输入功能的框
$(..).val() 获取值,用于具有value属性的标签
$(..).val(..) 设置值,用于具有value属性的标签
实例:模态编辑框

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6     <style>
 7         .hide{
 8             display: none;
 9         }
10         .modal{
11             position: fixed;
12             top:50%;
13             left:50%;
14             width:500px;
15             height:400px;
16             margin-left:-250px;
17             margin-top:-250px;
18             background-color: #dddddd;
19             z-index: 10;
20         }
21         .shadow{
22             position:fixed;
23             top:0;
24             left:0;
25             right:0;
26             bottom:0;
27             opacity:0.6;
28             background-color: black;
29             z-index:9;
30         }
31     </style>
32 </head>
33 <body>
34 <a onclick="Addtx();">添加</a>
35 <table border="1">
36     <thead>
37         <tr>
38             <th>ip</th>
39             <th>port</th>
40             <th>os</th>
41         </tr>
42     </thead>
43     <tbody>
44         <tr>
45             <td>1.1.1.1</td>
46             <td>80<b>test</b></td>
47             <td>
48                 <a>添加</a> | <a class="edit">编辑</a> | <a>删除</a>
49             </td>
50         </tr>
51         <tr>
52             <td>1.1.1.1</td>
53             <td>80</td>
54             <td>
55                 <a>添加</a> | <a class="edit">编辑</a> | <a>删除</a>
56             </td>
57         </tr>
58     </tbody>
59 </table>
60 <div class="modal hide">
61     <div>
62         <input name="hostname" type="text"/>
63         <input name="port" type="text"/>
64     </div>
65     <div>
66         <input type="button" value="取消" onclick="cancel();" />
67     </div>
68 </div>
69 <div class="shadow hide"></div>
70 <script src="jquery-1.12.4.js"></script>
71 <script>
72     /*为样式名modal,shadow的标签删除hide样式*/
73     function Addtx() {
74         $('.modal,.shadow').removeClass('hide')
75     }
76     /*为样式名 添加hide样式*/
77     function cancel() {
78         $('.modal,.shadow').addClass('hide')
79         /*对输入框进行清空操作*/
80         $('.modal input[type="text"]').val('')
81     }
82     /*样式edit 点击触发click事件,执行一个匿名函数*/
83     $('.edit').click(function () {
84         /*获取当前标签this的父标签的以上所有同级别标签*/
85         var tds = $(this).parent().prevAll();
86         Addtx(); /*执行函数*/
87         var ip = $(tds[1]).text() /*将tds[1]的dom转换为jquery,使用text方法提取文本内容*/
88         var port = $(tds[0]).text()
89         $('.modal input[name="hostname"]').val(ip) /*查找样式modal标签下的input[name=hostname]的标签进行赋值操作*/
90         $('.modal input[name="port"]').val(port)
91     })
92 </script>
93 </body>
94 </html>
View Code

样式操作:
addClass #添加样式
removeClass # 删除样式
toggleClass # 如果样式存在则删除样式,如果样式不存在则添加样式(开关效果)
实例:开关

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6     <style>
 7         .hide{
 8             display: none;
 9         }
10     </style>
11 </head>
12 <body>
13 <input id='btn' type="button" value="开关" />
14 <span class="i1 hide">开灯了</span>
15 </body>
16 <script src="jquery-1.12.4.js"></script>
17 <script>
18     $('#btn').click(
19             function () {
20                 $('.i1').toggleClass('hide')
21             }
22     )
23 </script>
24 </html>
View Code

属性操作:
# 一般专门用于做自定义属性操作
$(..).attr('n'):当为一个参数时候是获取属性值
$(..).attr('n','v'):当为2个参数时是修改属性值,如果出现重复则覆盖
$(..).removeAttr('n'):删除属性

实例:模态编辑框通过自定义属性动态加载内容

  1 <!DOCTYPE html>
  2 <html lang="en">
  3 <head>
  4     <meta charset="UTF-8">
  5     <title>Title</title>
  6     <style>
  7         .hide{
  8             display: none;
  9         }
 10         .modal{
 11             position: fixed;
 12             top:50%;
 13             left:50%;
 14             width:500px;
 15             height:400px;
 16             margin-left:-250px;
 17             margin-top:-250px;
 18             background-color: #dddddd;
 19             z-index: 10;
 20         }
 21         .shadow{
 22             position:fixed;
 23             top:0;
 24             left:0;
 25             right:0;
 26             bottom:0;
 27             opacity:0.6;
 28             background-color: black;
 29             z-index:9;
 30         }
 31     </style>
 32 </head>
 33 <body>
 34 <a onclick="Addtx();">添加</a>
 35 <table border="1">
 36     <thead>
 37         <tr>
 38             <th>ip</th>
 39             <th>port</th>
 40             <th>os</th>
 41         </tr>
 42     </thead>
 43     <tbody>
 44         <tr>
 45             <td target="hostname">1.1.1.1</td>
 46             <td target="port">80</td>
 47             <td>
 48                 <a class="cp">克隆</a> | <a class="edit">编辑</a> | <a class="del">删除</a>
 49             </td>
 50         </tr>
 51         <tr>
 52             <td target="hostname">1.1.1.1</td>
 53             <td target="port">80</td>
 54             <td>
 55                 <a class="cp">克隆</a> | <a class="edit">编辑</a> | <a class="del">删除</a>
 56             </td>
 57         </tr>
 58     </tbody>
 59 </table>
 60 <div class="modal hide">
 61     <div>
 62         <input name="hostname" type="text"/>
 63         <input name="port" type="text"/>
 64     </div>
 65     <div>
 66         <input type="button" value="取消" onclick="cancel();" />
 67     </div>
 68 </div>
 69 <div class="shadow hide"></div>
 70 <script src="jquery-1.12.4.js"></script>
 71 <script>
 72     /*为样式名modal,shadow的标签删除hide样式*/
 73     function Addtx() {
 74         $('.modal,.shadow').removeClass('hide')
 75     }
 76     /*为样式名 添加hide样式*/
 77     function cancel() {
 78         $('.modal,.shadow').addClass('hide')
 79         /*对输入框进行清空操作*/
 80         $('.modal input[type="text"]').val('')
 81     }
 82     /*样式edit 点击触发click事件,执行一个匿名函数*/
 83     $('.edit').click(function () {
 84         Addtx(); /*执行函数*/
 85         var tds = $(this).parent().prevAll(); /*提取所有上级兄弟标签,使用each循环每个标签*/
 86         tds.each(
 87                 function () {
 88                     /*this代表当天的td,获取td的target的值*/
 89                     var n = $(this).attr('target');
 90                     /*获取td中的内容*/
 91                     var txt = $(this).text();
 92                     /*进行字符串拼接,以满足定位目标输入框的属性和对应值*/
 93                     var a1 = '.modal input[name=';
 94                     var a2 = ']';
 95                     var temp = a1 + n + a2;
 96                     /*在input的输入框中动态输入对应的标签提取到的值(如标签target=hostname 值1.1.1.1)*/
 97                     $(temp).val(txt)
 98                 }
 99         )
100     })
101     $('.del').click(function () {
102         $(this).parent().parent().remove()
103     })
104     $('.cp').click(function () {
105         /*克隆标签*/
106         var new_ct = $(this).parent().parent().clone()
107         var par_ct = $(this).parent().parent().parent()
108         par_ct.append(new_ct)
109     })
110 </script>
111 </body>
112 </html>
View Code

# prop方法专门用于checkbox,radio等类似的选择功能标签
$(..).prop('checked')
$(..).prop('checked',true)
PS:
.index 获取索引位置
见实例:菜单切换_索引方法.html

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6     <style>
 7         .hide{
 8             display: none;
 9         }
10         .active{
11             background-color:brown;
12         }
13         .menu{
14             height:38px;
15             background-color: #eeeeee;
16             line-height:38px;
17             cursor:pointer;/*鼠标链接以小手形状出现*/
18         }
19         .menu-item{
20             float:left;
21             border-right:1px solid red;
22             padding:0 5px;
23         }
24         .content{
25             min-height:100px;
26             border:1px solid red;
27         }
28     </style>
29 </head>
30 <body>
31 <div style="700px;margin:0 auto;">
32     <div class="menu">
33         <div class="menu-item active">menu 1</div>
34         <div class="menu-item">menu 2</div>
35         <div class="menu-item">menu 3</div>
36     </div>
37     <div class="content">
38         <div>content 1</div>
39         <div class="hide">content 2</div>
40         <div class="hide">content 3</div>
41     </div>
42 </div>
43 <script src="jquery-1.12.4.js"></script>
44 <script>
45     /*根据自定义属性进行操作*/
46     $('.menu-item').click(function () {
47         /*当前标签添加active样式并将所有兄弟标签删除active样式*/
48         $(this).addClass('active').siblings().removeClass('active');
49         /*获取当前标签的索引号*/
50         var v = $(this).index();
51         /*根据content下通过eq定位索引标签进行操作*/
52         $('.content').children().eq(v).removeClass('hide').siblings().addClass('hide')
53     })
54 </script>
55 </body>
56 </html>
View Code

文档处理:(实现添加,删除,修改)
append #在目标标签内的子标签最下方添加内容
prepend #在目标标签内的子标签最上方添加内容
after #在目标标签同级下方添加内容
before #在目标标签同级上方添加内容
remove #删除 根据索引对应到的标签和内容
empty #只清空标签内容,不删除标签
clone #克隆一份,然后需要通过append再次添加克隆的数据
实例:标签添加删除复制.html

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8 <input type="text" id="txt">
 9 <input type="button" id="Add" value="添加" />
10 <input type="button" id="Del" value="删除" />
11 <input type="button" id="Cp" value="复制" />
12 
13 <ul>
14     <li>abc</li>
15     <li>123</li>
16     <li>def</li>
17 </ul>
18 <script src="jquery-1.12.4.js"></script>
19 <script>
20     $('#Add').click(function () {
21         var txt = $('#txt').val()
22         var tit = '<li>' + txt +'</li>'
23         /* 在li的最下方添加标签和内容*/
24         $('ul').append(tit)
25         /*在li的最上方添加标签和内容
26         $('ul').prepend(tit)
27         */
28         /*在同级标签的下方添加标签和内容
29         $('ul').after(tit)
30         */
31         /*在同级标签的最上方添加标签和内容
32         $('ul').before(tit)
33         */
34     });
35     $('#Del').click(function () {
36         var index = $('#txt').val();
37         /*删除标签和内容*/
38         $('ul li').eq(index).remove();
39         /*只删除内容
40         $('ul li').eq(index).empty()*/
41     });
42     $('#Cp').click(function () {
43         var index = $('#txt').val();
44         /*根据索引号克隆一行新的数据*/
45         var new_ct = $('ul li').eq(index).clone();
46         /*添加克隆出来的数据*/
47         $('ul').append(new_ct)
48     })
49 </script>
50 </body>
51 </html>
View Code

实例:模态编辑框添加编辑删除克隆.html

  1 <!DOCTYPE html>
  2 <html lang="en">
  3 <head>
  4     <meta charset="UTF-8">
  5     <title>Title</title>
  6     <style>
  7         .hide{
  8             display: none;
  9         }
 10         .modal{
 11             position: fixed;
 12             top:50%;
 13             left:50%;
 14             width:500px;
 15             height:400px;
 16             margin-left:-250px;
 17             margin-top:-250px;
 18             background-color: #dddddd;
 19             z-index: 10;
 20         }
 21         .shadow{
 22             position:fixed;
 23             top:0;
 24             left:0;
 25             right:0;
 26             bottom:0;
 27             opacity:0.6;
 28             background-color: black;
 29             z-index:9;
 30         }
 31     </style>
 32 </head>
 33 <body>
 34 <a onclick="Addtx();">添加</a>
 35 <table border="1">
 36     <thead>
 37         <tr>
 38             <th>ip</th>
 39             <th>port</th>
 40             <th>os</th>
 41         </tr>
 42     </thead>
 43     <tbody id="tb">
 44         <tr>
 45             <td target="hostname">1.1.1.1</td>
 46             <td target="port">80</td>
 47             <td>
 48                 <a class="cp">克隆</a> | <a class="edit">编辑</a> | <a class="del">删除</a>
 49             </td>
 50         </tr>
 51         <tr>
 52             <td target="hostname">1.1.1.1</td>
 53             <td target="port">80</td>
 54             <td>
 55                 <a class="cp">克隆</a> | <a class="edit">编辑</a> | <a class="del">删除</a>
 56             </td>
 57         </tr>
 58     </tbody>
 59 </table>
 60 <div class="modal hide">
 61     <div>
 62         <input name="hostname" type="text"/>
 63         <input name="port" type="text"/>
 64     </div>
 65     <div>
 66         <input type="button" value="确定" onclick="confirmModal();" />
 67         <input type="button" value="取消" onclick="cancel();" />
 68     </div>
 69 </div>
 70 <div class="shadow hide"></div>
 71 <script src="jquery-1.12.4.js"></script>
 72 <script>
 73     /*为样式名modal,shadow的标签删除hide样式*/
 74     function Addtx() {
 75         $('.modal,.shadow').removeClass('hide')
 76     }
 77     /*为样式名 添加hide样式*/
 78     function cancel() {
 79         $('.modal,.shadow').addClass('hide')
 80         /*对输入框进行清空操作*/
 81         $('.modal input[type="text"]').val('')
 82     }
 83     /*添加行数据*/
 84     function confirmModal() {
 85         var htname = $('.modal input[name="hostname"]').val();
 86         var htport = $('.modal input[name="port"]').val();
 87         var tr = document.createElement('tr');
 88         var td1 = document.createElement('td');
 89         td1.setAttribute('target','hostname');
 90         td1.innerHTML = htname;
 91         var td2 = document.createElement('td');
 92         td2.setAttribute('target','port');
 93         td2.innerHTML = htport;
 94         var td3 = document.createElement('td');
 95         td3.innerHTML = '<a class="cp">克隆</a> | <a class="edit">编辑</a> | <a class="del">删除</a>'
 96         $(tr).append(td1);
 97         $(tr).append(td2);
 98         $(tr).append(td3);
 99         $('#tb').append(tr);
100         cancel()
101     }
102 
103     /*样式edit 点击触发click事件,执行一个匿名函数*/
104     $('.edit').click(function () {
105         Addtx(); /*执行函数*/
106         var tds = $(this).parent().prevAll(); /*提取所有上级兄弟标签,使用each循环每个标签*/
107         tds.each(
108                 function () {
109                     /*this代表当天的td,获取td的target的值*/
110                     var n = $(this).attr('target');
111                     /*获取td中的内容*/
112                     var txt = $(this).text();
113                     /*进行字符串拼接,以满足定位目标输入框的属性和对应值*/
114                     var a1 = '.modal input[name=';
115                     var a2 = ']';
116                     var temp = a1 + n + a2;
117                     /*在input的输入框中动态输入对应的标签提取到的值(如标签target=hostname 值1.1.1.1)*/
118                     $(temp).val(txt)
119                 }
120         )
121     })
122     $('.del').click(function () {
123         $(this).parent().parent().remove()
124     })
125     $('.cp').click(function () {
126         /*克隆标签*/
127         var new_ct = $(this).parent().parent().clone()
128         var par_ct = $(this).parent().parent().parent()
129         par_ct.append(new_ct)
130     })
131 </script>
132 </body>
133 </html>
View Code

CSS样式处理
获取标签,然后通过css进行设置样式
$('t1').css('样式名称','样式值')
抽屉点赞功能:
实例:点攒.html

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6     <style>
 7         .contain{
 8             padding:50px;
 9             border:1px solid #ddd;
10         }
11         .item{
12             position: relative;
13             width:30px;
14         }
15     </style>
16 </head>
17 <body>
18 <div class="contain">
19     <div class="item">
20         <span></span>
21     </div>
22 </div>
23 <div class="contain">
24     <div class="item">
25         <span></span>
26     </div>
27 </div>
28 <script src="jquery-1.12.4.js"></script>
29 <script>
30     $('.item').click(function () {
31         /*点击item触发事件执行这个函数*/
32         Addfaver(this)
33     })
34     function Addfaver(self) {
35         /*实现效果,初始化效果值*/
36         var fontsize=15;
37         var top=0;
38         var right=0;
39         var opacity=1;
40         /*创建一个span标签*/
41         var tag = document.createElement('span')
42         $(tag).text('+1')
43         /*设置标签样式*/
44         $(tag).css('color','green')
45         $(tag).css('position','absolute');
46         $(tag).css('fontsize',fontsize + "px")
47         $(tag).css('top',top + "px")
48         $(tag).css('right',right + "px")
49         $(tag).css('opacity',opacity)
50         $(self).append(tag)
51         /*以下使用定时器实现效果的变化*/
52         var obj = setInterval(function () {
53             fontsize = fontsize + 5;
54             top = top - 5;
55             right= right - 5;
56             opacity= opacity - 0.2;
57             $(tag).css('fontsize',fontsize + "px")
58             $(tag).css('top',top + "px")
59             $(tag).css('right',right + "px")
60             $(tag).css('opacity',opacity)
61             /*当透明度小于0时候,进行删除定时器和删除+1的标签*/
62             if(opacity < 0){
63                 clearInterval(obj)
64                 $(tag).remove()
65             }
66         },100)
67     }
68 </script>
69 </body>
70 </html>
View Code

滑轮位置:
$(div).scrollTop() 获取div的上下滑轮位置
$(window).scrollTop() 获取windows窗口的上下滑轮位置
$(window).scrollTop(0) 设置滑轮位置值
.scrollLeft([val]) 左右位置
offset 指定标签在html中的坐标
offset().left 指定标签在html中的坐标
offset().top 指定标签在html中的坐标

事件绑定方式:
DOM:三种绑定方式
jquery:
第一种:$('.c1').click() # 很多种绑定事件
第二种:$('.c1').bind('click',function(){ }) # 对.c1绑定click事件
$('.c1').unbind('click',function(){ }) # 对.c1解除绑定click事件
$('.c1').delegate('a','click',function(){ }) # 对.c1下面的所有a标签绑定一个click事件,这个功能可以实现动态添加的标签具有事件绑定,很有用。
$('.c1').undelegate('a','click',function(){ }) # 对.c1下面所有a标签解除click事件
$('.c1').on('click',function(){}) # 以上所有绑定方式在jquery内部全部使用的是on绑定
$('.c1').off('click',function(){})
实例:绑定实例.html -->注意delegate的使用

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8 <input id="t1" type="text" />
 9 <input type="button" id="a1" value="添加" />
10 <ul id="u1">
11     <li>123</li>
12     <li>123</li>
13     <li>123</li>
14 </ul>
15 <script src="jquery-1.12.4.js"></script>
16 <script>
17     $('#a1').click(function () {
18         var v = $('#t1').val();
19         var tmp = '<li>' + v + "</li>"
20         $('#u1').prepend(tmp)
21     })
22     /*使用以下方法添加标签后,但是无法触发alert事件
23     $('ul li').click(function () {
24         var v = $(this).text()
25         alert(v)
26     })
27     $('ul li').bind('click',function () {
28         var v = $(this).text()
29         alert(v)
30     })
31     $('ul li').on('click',function () {
32         var v = $(this).text()
33         alert(v)
34     })
35     */
36     /*这个叫委托,可以对添加的标签进行绑定事件执行*/
37     $('ul').delegate('li','click',function () {
38         var v = $(this).text()
39         alert(v)
40     })
41 </script>
42 </body>
43 </html>
View Code

阻止事件:
return false # 将阻止后面的事件发生,默认是return true

# 当页面框架加载完成后,自动执行
$(function(){
$(绑定事件默认执行的操作)
})

举例:
/*通过return false 阻止后面href事件的发生*/
<a onclick='return clickon()' href='http://www.baidu.com'>let go</a>
<a id='i1' href='http://www.baidu.com'>letgo2</a>
<script>
/*dom*/
function clickon(){
alert(123);
return false;
</script>
<script src='jquery-1.12.4.js'></script>
<script>
/*jquery*/
$('#i1').click(function(){
alert(456)
return false; # 阻止后续事件的发生
})
</script>
return false: 后面的href将停止链接

实例:表单验证.html

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6     <style>
 7         .error{
 8             color: red;
 9         }
10     </style>
11 </head>
12 <body>
13 <form id='f1' action="s1.html">
14     <div><input name='n1' type="text" /></div>
15     <div><input name='n2' type="password" /></div>
16     <div><input name='n3' type="text" /></div>
17 
18     <input type="submit" value="提交"/>
19     <img src="...">
20 </form>
21 <script src="jquery-1.12.4.js"></script>
22 <script>
23     /*当页面框架加载完毕后,会自动执行,注,不需要等待图片加载完成,只加载图片的框架,和下面的区别*/
24 //    $(function () {
25 //
26 //    })
27 
28     /*当上面所有元素完全加载完毕后,才会执行,注意,需要等待图片加载完成*/
29     $(':submit').click(function () {
30         var flag = true;
31         $('.error').remove(); /*清空错误提示的样式*/
32         $('#f1').find('input[type="text"],input[type="password"]').each(function () {
33             var v = $(this).val();
34             /*当输入框为空,将创建错误提示*/
35             if(v.length <= 0){
36                 flag = false;
37                 var tag = document.createElement('span');
38                 tag.className='error';
39                 tag.innerHTML = '必填';
40                 $(this).after(tag);
41 //                return flag; /*只结束当前循环*/
42             }
43         });
44         return flag; /*结束整个循环*/
45     })
46 </script>
47 </body>
48 </html>
View Code

jquery 扩展,使用自执行函数封装扩展,避免全局变量冲突。
- $.extend 执行: $.方法
- $.fn.extend 执行 $(..).方法

实例:jquery扩展.html

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8 <script src="jquery-1.12.4.js"></script>
 9 <script>
10     //jquery扩展第一种,自定义jquery的方法,使用extend,内部是一个字典
11     $.extend({
12         'name':function () {
13             return 'jack';
14         }
15     });
16     var v = $.name(); /*方法调用*/
17     alert(v);
18     //jquery扩展第二种,
19     $.fn.extend({
20         'name':function () {
21             return 'jack';
22         }
23     });
24     var v = $('#i1').name();
25     alert(v)
26 </script>
27 </body>
28 </html>
View Code

js扩展引入方法:
将jqeury扩展代码写入到js文件中,引入方法:
<script src='js自定义文件.js'></script>
<script>
var v = $.自定义的方法名()
alert(v)
</script>
自执行函数,可以封装js扩展
(function(){
var status = 1;
// 封装变量
})(jquery)

原文地址:https://www.cnblogs.com/zy6103/p/7402999.html