jQuery(一)

定义:对JavaScript对象和函数的封装,提高开发效率
      http://jquery.com/     开发版\发布版
作用:
    1.访问和操作DOM元素
    2.控制页面样式
    3.对页面事件进行处理
    4.与Ajax技术完美结合
    5.扩展新的jQuery插件
    
优势:
    1.出色的DOM封装
    2.可靠的事件处理机制
    3.出色的浏览器兼容性
    4.强大的选择器
    5.使用隐式迭代简化编程
    6.体积小,丰富的插件支持

jQuery和JavaScript区别:
                window.onload                                                                $(document).ready()
执行时机        必须等页面所有的内容(包括图片,flash,视频等)加载完毕后才能执行            网页所有DOM文档绘制完毕后即可执行,可能与DOM元素无关的内容(包括图片,flash,视频等)并没有加载完
编写个数        同一个页面只能编写一个                                                        同一个页面同时编写多个
简化写法        无                                                                            $(function(){//执行代码});
    
语法:
    1.引入jQuery库文件
    2.$(选择器).方法名();
        <script>
            $(document).ready(function() {
                alert("Hello,jQuery!");
            });
        </script>

DOM元素的操作
    a.js,获取的是DOM对象
        var input = document.getElementById('userName');
        alert(input.value);

    b.jQuery,获取的是jQuery对象
        var $input = $('#userName');
        alert($input.val());
【注意:DOM对象和jQuery对象分别有一套独立的方法,不能混用!!!】

jQuery对象和DOM对象转换
    1.数组方式
        var $userName = $('#userName');
        var userName = $userName[0];
    2.get方法
        var $userName = $('#userName');
        var userName = &userName.get(0);
【★注意:jQuery对象本身是一个集合★】

范例:

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="utf8">
 5     <title></title>
 6 </head>
 7 <body>
 8 
 9     <input id="userName" type="text" value="admin"></input>
10     <button  value="点击" onclick="getUserName()">点击</button>
11     <button id="btn" value="jQuery">jQuery</button>
12 
13     <script type="text/javascript" src="bootstrap/bootstrap.js"></script>
14     <!-- jQuery包 -->
15     <script type="text/javascript" src="bootstrap/jquery-1.11.0.js"></script>
16     <script type="text/javascript">
17 
18         /* 文档就绪事件 */
19         $(document).ready(function(){
20             alert('hello,jQuery');
21         });
22 
23         //文档就绪的简化写法
24         $(function(){
25             alert('您好!');
26         });
27 
28         /* jQuery获取jQuery对象 */
29         $(function(){
30 
31             $('#btn').click(function () {
32                  /* body... */
33                  alert($('#userName').val());
34             });
35 
36         });
37 
38         /* 原始js获取DOM对象 */
39         function getUserName(){
40             //使用原始方法获取DOM对象
41             var inputDom = document.getElementById('userName').value;    
42             alert(inputDom);
43         }
44     </script>
45 </body>
46 </html>


jQuery选择器
    1.基本选择器:class、id
        a.标签选择器:$('h2')
        b.类选择器:$('.title')
        c.ID选择器:$('#title')
        d.并集选择器:$('div,p,.title')
        e.交集选择器:$('h2.title')
        f.全局选择器:$('*')
    2.层次选择器:HTML布局结构
        a.后代选择器:$('#menu h2')        选取#menu下的所有<h2>元素
        b.子选择器:$('#menu>span')        选取#menu的子元素<span>
        c.相邻元素选择器:$('h2+dl')    选取紧邻<h2>元素之后的同辈元素<dl>
        d.同辈元素选择器:$('h2~dl')    选取<h2>元素之后所有的同辈元素<dl>
    3.过滤选择器:指定的过滤规则
        1)属性过滤选择器
            a.$("[href]")                    选取含有href属性的元素
            b.$("[href ='#']")                选取href属性值为“#”的元素
            c.$("[href !='#']")                选取href属性值不为“#”的元素
            d.$("[href^='en']")                选取href属性值以en开头的元素
            e.$("[href$='.jpg']")            选取href属性值以.jpg结尾的元素
            f.$("li[id][title=新闻要点]")    选取含有id属性和title属性为新闻要点的<li>元素
        2)基本过滤选择器
            a.$("li:first")        选取所有<li>元素中的第一个<li>元素
            b.$("li:last")        选取所有<li>元素中的最后一个<li>元素
            c.$("li:even")        选取索引是偶数的所有<li>元素(index从0开始)
            d.$("li:odd")        选取索引是奇数的所有<li>元素(index从0开始)
            e.$("li:eq(1)")        选取索引等于1的<li>元素(index从0开始)
            f.$("li:gt(1)")        选取索引大于1的<li>元素(注:大于1,不包括1)(index从0开始)
            g.$("li:lt(1)")        选取索引小于1的<li>元素(注:小于1,不包括1)(index从0开始)
        3)可见性过滤选择器
            a.$(":visible")        选取所有可见的元素
            b.$(":hidden")         选取所有隐藏的元素
        4)表单过滤选择器
            a.$( ":input")                    选取所有的表单元素
            b.$("[type=ckeckbox]:checked")     选取所有选中的复选框元素
            c.$("select:selected")            匹配所有选中的下拉框
            d.$( ":enabled")                匹配所有可用元素
            e.$(":disabled")                 匹配所有不可用元素

jQuery提供的方法
    1.DOM元素的筛选
        a.位置:eq(),first(),last(),next(),prev()
        b.层次:chlidren(),parent(),siblings(),closest()
        c.指定表达式:find(),hasClass()
    2.属性操作
        a.class属性:addClass(),removeClass(),toggleClass()
        b.value属性:val():获取或设置元素的值,一般用于表单元素
        c.内容属性:html(),text()
    3.样式
        a.单样式操作:height(),width()
        b.组合样式操作:css()
    4.事件
        a.事件绑定:$(选择器).事件名();    / $(选择器).on(事件类型,[选择器],[参数],方法);
        b.事件移除:$(选择器).off(事件类型,[选择器],方法);
        c.事件触发:$(选择器).trigger(事件类型,[参数]);        
常用事件:ready,click,mouseover,mouseout,focus,blur,hover
    5.操作
    6.动画效果

范例:jQuery对象和DOM对象区别

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="utf8">
 5     <title></title>
 6 </head>
 7 <body>
 8     <input id="userName" type="text" value="admin"></input>
 9     <button  value="点击" onclick="getUserName()">点击</button>
10     <button id="btn" value="jQuery">jQuery</button>
11     <script type="text/javascript" src="bootstrap/bootstrap.js"></script>
12     <!-- jQuery包 -->
13     <script type="text/javascript" src="bootstrap/jquery-1.11.0.js"></script>
14     <script type="text/javascript">
15 
16         /* 文档就绪事件 */
17         $(document).ready(function(){
18             alert('hello,jQuery');
19         });
20 
21         //文档就绪的简化写法
22         $(function(){
23             alert('您好!');
24         });
25 
26         /* jQuery获取jQuery对象 */
27         $(function(){
28             $('#btn').click(function () {
29                  alert($('#userName').val());
30             });
31         });
32 
33         /* 原始js获取DOM对象 */
34         function getUserName(){
35             //使用原始方法获取DOM对象
36             var inputDom = document.getElementById('userName').value;    
37             alert(inputDom);
38         }
39 
40         $(function(){
41             var inputDom = document.getElementById('userName').value;
42             console.log(inputDom);
43             var $inputJQ = $('#userName');
44             console.log($inputJQ);
45         });
46     </script>
47 </body>
48 </html>

   
范例:jQuery选择器

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="utf-8">
 5     <title></title>
 6     <style type="text/css">
 7         .step h1+ol{
 8             background-color: red;
 9         }
10         li[class]{
11             color:blue;
12         }
13         li[class=s]{
14             color: yellow;
15         }
16         input[data-role="save"]{
17             background-color: blue;
18             color: white;
19             border: none;
20             border-radius: 4px;
21         }
22         li:nth-child(1),li:nth-child(2){
23             font-size: 40px;
24         }
25     </style>
26 </head>
27 <body>
28     <script type="text/javascript" src="bootstrap/jquery.min.js"></script>
29     <script type="text/javascript" src="bootstrap/jquery-1.11.0.js"></script>
30     <div class="step">
31         <h1>把大象装进冰箱</h1>
32         <ol>
33             <li class="">打开冰箱</li>
34             <li class="s">把冰箱清空</li>
35             <li>把大象装进去</li>
36             <li>关上冰箱</li>
37         </ol>
38         <h1>把熊猫装进冰箱</h1>
39         <ol>
40             <li>打开冰箱</li>
41             <li>把冰箱清空</li>
42             <li>把熊猫装进去</li>
43             <li>关上冰箱</li>
44         </ol>
45         <input type="button" value="登录" data-role="save"></input>
46     </div>
47     <script type="text/javascript">
48         $(function(){
49             /* 获得所有的奇偶行 */
50             $('li:odd').css('background-color','blue');
51             $('li:odd').css({
52                 'background-color':'blue',
53                 'color':'red',
54                 'font-size':'20px'
55             });
56 
57             /* 找到第一个ol下面的第三个li */
58             $('ol li:eq(2)').css('border','10px solid red');
59 
60             /* 找到所有ol下面的第三个li */
61             $('ol').find('li:eq(2)').css('border','10px solid red');
62         });
63     </script>
64 </body>
65 </html>    


范例:事件

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="utf-8">
 5     <title></title>
 6     <style type="text/css">
 7         .news li.selected{
 8             background-color: red;
 9             color: white;
10         }
11     </style>
12 </head>
13 <body>
14     <script type="text/javascript" src="bootstrap/bootstrap.min.js"></script>
15     <script type="text/javascript" src="bootstrap/jquery-1.11.0.js"></script>
16 
17     <button id="btn_add" value="添加">添加</button>
18     <h3>新闻列表</h3>
19     <ol class="news">
20         <li><a href="javascript:;"></a>国内新闻</li>
21         <li>国际新闻</li>
22         <li>体育新闻</li>
23         <li>新闻列表</li>
24     </ol>
25 
26     <script type="text/javascript">
27         $(function(){
28             $('#btn_add').click(function () {
29                  var  $li = $('<li></li>');
30                  $li.text('新添加');
31                  $('ol').append($li);
32             });        
33 
34         $('.news li').click(function () {            
35              // $(this).toggleClass('selected');
36              // $(this).addClass('selected').siblings().removeClass('selected');
37              $(this).toggleClass('selected').siblings().removeClass('selected');
38              $(this).css('font-size','20px');
39              alert($(document).height());
40         });
41 
42             $('.news').on('click','li',function(){
43                 $(this).toggleClass('selected').siblings().removeClass('selected');
44                 /* 事件触发一次,就关闭 */
45                 // $('.news').off('click');
46                 
47                 /* 点击li,就触发添加按钮 */
48                 $('#btn_add').trigger('click');
49             });
50         });
51     </script>
52 </body>
53 </html>


范例:jQuery操作表格

  1 <!DOCTYPE html>
  2 <html>
  3 <head>
  4     <meta charset="utf-8">
  5     <title></title>
  6 </head>
  7 <body>
  8     <div>
  9         <table>
 10             <thead>
 11                 <tr>
 12                     <th>姓名</th>
 13                     <th>性别</th>
 14                     <th>出生日期</th>
 15                     <th>电话</th>
 16                     <th>邮箱</th>
 17                     <th>操作</th>
 18                 </tr>
 19             </thead>
 20             <tbody>
 21                 <tr>
 22                     <td>张三</td>
 23                     <td>男</td>
 24                     <td>1999-11-11</td>
 25                     <td>13612345672</td>
 26                     <td>zhangsan@qq.com</td>
 27                     <td><a data-role="del" href="javascript:;">删除</a><a data-role="detial" href="javascript:;">详细</a></td>
 28                 </tr>
 29                 <tr>
 30                     <td>李四</td>
 31                     <td>男</td>
 32                     <td>1999-11-11</td>
 33                     <td>13612345672</td>
 34                     <td>zhangsan@qq.com</td>
 35                     <td><a data-role="del" href="javascript:;">删除</a><a data-role="detial" href="javascript:;">详细</a></td>
 36                 </tr>
 37                 <tr>
 38                     <td>王五</td>
 39                     <td>男</td>
 40                     <td>1999-11-11</td>
 41                     <td>13612345672</td>
 42                     <td>zhangsan@qq.com</td>
 43                     <td><a data-role="del" href="javascript:;">删除</a><a data-role="detial" href="javascript:;">详细</a></td>
 44                 </tr>
 45                 <tr>
 46                     <td>赵六</td>
 47                     <td>男</td>
 48                     <td>1999-11-11</td>
 49                     <td>13612345672</td>
 50                     <td>zhangsan@qq.com</td>
 51                     <td><a data-role="del" href="javascript:;">删除</a><a data-role="detial" href="javascript:;">详细</a></td>
 52                 </tr>
 53                 <tr>
 54                     <td>刘七</td>
 55                     <td>男</td>
 56                     <td>1999-11-11</td>
 57                     <td>13612345672</td>
 58                     <td>zhangsan@qq.com</td>
 59                     <td><a data-role="del" href="javascript:;">删除</a><a data-role="detial" href="javascript:;">详细</a></td>
 60                 </tr>
 61             </tbody>
 62         </table>
 63         <div>详细信息</div>
 64     </div>
 65     
 66     <div>
 67         <table>
 68             <thead>
 69                 <tr>
 70                     <th>姓名</th>
 71                     <th>性别</th>
 72                     <th>出生日期</th>
 73                     <th>电话</th>
 74                     <th>邮箱</th>
 75                     <th>操作</th>
 76                 </tr>
 77             </thead>
 78             <tbody>
 79                 <tr>
 80                     <td>张三</td>
 81                     <td>男</td>
 82                     <td>1999-11-11</td>
 83                     <td>13612345672</td>
 84                     <td>zhangsan@qq.com</td>
 85                     <td><a data-role="del" href="javascript:;">删除</a><a data-role="detial" href="javascript:;">详细</a></td>
 86                 </tr>
 87                 <tr>
 88                     <td>李四</td>
 89                     <td>男</td>
 90                     <td>1999-11-11</td>
 91                     <td>13612345672</td>
 92                     <td>zhangsan@qq.com</td>
 93                     <td><a data-role="del" href="javascript:;">删除</a><a data-role="detial" href="javascript:;">详细</a></td>
 94                 </tr>
 95                 <tr>
 96                     <td>王五</td>
 97                     <td>男</td>
 98                     <td>1999-11-11</td>
 99                     <td>13612345672</td>
100                     <td>zhangsan@qq.com</td>
101                     <td><a data-role="del" href="javascript:;">删除</a><a data-role="detial" href="javascript:;">详细</a></td>
102                 </tr>
103                 <tr>
104                     <td>赵六</td>
105                     <td>男</td>
106                     <td>1999-11-11</td>
107                     <td>13612345672</td>
108                     <td>zhangsan@qq.com</td>
109                     <td><a data-role="del" href="javascript:;">删除</a><a data-role="detial" href="javascript:;">详细</a></td>
110                 </tr>
111                 <tr>
112                     <td>刘七</td>
113                     <td>男</td>
114                     <td>1999-11-11</td>
115                     <td>13612345672</td>
116                     <td>zhangsan@qq.com</td>
117                     <td><a data-role="del" href="javascript:;">删除</a><a data-role="detial" href="javascript:;">详细</a></td>
118                 </tr>
119             </tbody>
120         </table>
121         <div>详细信息</div>
122     </div>
123     
124     <div>
125         <table>
126             <thead>
127                 <tr>
128                     <th>姓名</th>
129                     <th>性别</th>
130                     <th>出生日期</th>
131                     <th>电话</th>
132                     <th>邮箱</th>
133                     <th>操作</th>
134                 </tr>
135             </thead>
136             <tbody>
137                 <tr>
138                     <td>张三</td>
139                     <td>男</td>
140                     <td>1999-11-11</td>
141                     <td>13612345672</td>
142                     <td>zhangsan@qq.com</td>
143                     <td><a data-role="del" href="javascript:;">删除</a><a data-role="detial" href="javascript:;">详细</a></td>
144                 </tr>
145                 <tr>
146                     <td>李四</td>
147                     <td>男</td>
148                     <td>1999-11-11</td>
149                     <td>13612345672</td>
150                     <td>zhangsan@qq.com</td>
151                     <td><a data-role="del" href="javascript:;">删除</a><a data-role="detial" href="javascript:;">详细</a></td>
152                 </tr>
153                 <tr>
154                     <td>王五</td>
155                     <td>男</td>
156                     <td>1999-11-11</td>
157                     <td>13612345672</td>
158                     <td>zhangsan@qq.com</td>
159                     <td><a data-role="del" href="javascript:;">删除</a><a data-role="detial" href="javascript:;">详细</a></td>
160                 </tr>
161                 <tr>
162                     <td>赵六</td>
163                     <td>男</td>
164                     <td>1999-11-11</td>
165                     <td>13612345672</td>
166                     <td>zhangsan@qq.com</td>
167                     <td><a data-role="del" href="javascript:;">删除</a><a data-role="detial" href="javascript:;">详细</a></td>
168                 </tr>
169                 <tr>
170                     <td>刘七</td>
171                     <td>男</td>
172                     <td>1999-11-11</td>
173                     <td>13612345672</td>
174                     <td>zhangsan@qq.com</td>
175                     <td><a data-role="del" href="javascript:;">删除</a><a data-role="detial" href="javascript:;">详细</a></td>
176                 </tr>
177             </tbody>
178         </table>
179         <div>详细信息</div>
180     </div>    
181 
182     <script type="text/javascript" src="bootstrap/jquery-1.11.0.js"></script>
183     <script type="text/javascript">
184         $(function(){
185             $('a[data-role="del"]').click(function(){
186                 /* (a)td->tr->td:first */
187                 // var name = $(this).parent().parent().find('td:first').text();
188                 var name = $(this).closest('tr').children().first().text();
189                 confirm(name + '?');
190             });
191 
192             $('a[data-role="detial"]').click(function(){
193                 var name = $(this).closest('tr').find('td:eq(0)').text();
194                 var $detialLayer = $(this).closest('table').next();
195                 $detialLayer.html(name);
196                 // confirm('查看' + name);
197             });
198         });
199     </script>
200 </body>
201 </html>


范例:下拉表单

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="utf-8">
 5     <title></title>
 6     <link rel="stylesheet" type="text/css" href="bootstrap/select2-4.0.2-dist/css/select2.min.css">
 7 </head>
 8 <body>
 9     <select style="width: 200px;">
10         <option>1</option>
11         <option>12</option>
12         <option>13</option>
13         <option>14</option>
14         <option>21</option>
15         <option>31</option>
16         <option>41</option>
17         <option>61</option>
18     </select>
19     
20     <script type="text/javascript" src="bootstrap/jquery-1.11.0.js"></script>
21     <script type="text/javascript" src="bootstrap/select2-4.0.2-dist/js/select2.full.min.js"></script>
22     <script type="text/javascript">
23         $(function () {
24              $('select').select2();
25         });
26     </script>
27 </body>
28 </html>

 















posted @ 2016-06-04 18:54  Ivy_Xu  阅读(328)  评论(0编辑  收藏  举报