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對象自己是一個集合★】

範例:javascript

 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對象區別css

 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選擇器html

 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>    


範例:事件java

 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操做表格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>
相關文章
相關標籤/搜索