1. 程式人生 > >Python Day17(jQuery)

Python Day17(jQuery)

none pre 技術 open eight 阻止 pass color ....

一、概述

1.簡介

jQuery是一個快速、簡潔的JavaScript框架,是繼Prototype之後又一個優秀的JavaScript代碼庫(或JavaScript框架)。jQuery設計的宗旨是“write Less,Do More”,即倡導寫更少的代碼,做更多的事情。它封裝JavaScript常用的功能代碼,提供一種簡便的JavaScript設計模式,優化HTML文檔操作、事件處理、動畫設計和Ajax交互。 jQuery的核心特性可以總結為:具有獨特的鏈式語法和短小清晰的多功能接口;具有高效靈活的css選擇器,並且可對CSS選擇器進行擴展;擁有便捷的插件擴展機制和豐富的插件。jQuery兼容各種主流瀏覽器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等。 參考中文文檔:http://jquery.cuishifeng.cn/ jQuery是什麽?
jQuery跟python裏面的模塊一樣,它相當於是一個封裝了DOM/BOM/JavaScriptd的一個模塊。 版本選擇? jQuery版本有很多,1.*,2.*,3.*,一般我們選擇1.*的最高版本,因為比較穩定,兼容性好。 jQuery對象和Dom對象的轉換?
  • jquery對象[索引] => Dom對象
  • $(Dom對象) => jquery對象

二、選擇器

1.id選擇器

$("#id")

2.class選擇器

$(".c1")

3.標簽選擇器

$("a")

4.組合選擇器

$("a,.c1,#i1")

5.層級選擇器

$("#i1 a") 找子子孫孫
$(
"#i1>a") 只找兒子

6.基本篩選器

:first     第一個
:last      最後一個
:eq(index) 根據索引來取

7.屬性選擇器

$("[alex]")        具有alex屬性的所有標簽
$("[alex=‘123‘]")  alex=123的所有標簽

示例:

<input type=‘text‘/>
<input type=‘text‘/>
<input type=‘file‘/>
<input type=‘password‘/>

$("input[type=‘text‘]")
$(‘:text‘)      ==>  表單選擇器

全選反選取消示例:

技術分享
 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <meta http-equiv="x-ua-compatible" content="IE=edge">
 6     <meta name="viewport" content="width=device-width, initial-scale=1">
 7     <title>Title</title>
 8 </head>
 9 <body>
10     <div id="menu1">
11         <input type="button" value="全選" />
12         <input type="button" value="反選" />
13         <input type="button" value="取消" />
14     </div>
15     <div>
16         <table border="1" width="300px" style="text-align: center">
17             <thead>
18                 <tr>
19                     <th>選擇</th>
20                     <th>序號</th>
21                     <th>用戶名</th>
22                 </tr>
23             </thead>
24             <tbody id="table1">
25                 <tr>
26                     <td><input type="checkbox"></td>
27                     <td>1</td>
28                     <td>breakering</td>
29                 </tr>
30                 <tr>
31                     <td><input type="checkbox"></td>
32                     <td>2</td>
33                     <td>profhua</td>
34                 </tr>
35                 <tr>
36                     <td><input type="checkbox"></td>
37                     <td>3</td>
38                     <td>wolf</td>
39                 </tr>
40             </tbody>
41         </table>
42     </div>
43     <script src="jquery-1.12.4.js"></script>
44     <script>
45         $("#menu1 :input[value=‘全選‘]").click(function () {
46             $("#table1 :checkbox").prop("checked", true);
47         });
48         $("#menu1 :input[value=‘反選‘]").click(function () {
49             $("#table1 :checkbox").each(function () {
50                 $(this).prop("checked", $(this).prop("checked") ? false : true)
51             })
52         });
53         $("#menu1 :input[value=‘取消‘]").click(function () {
54             $("#table1 :checkbox").prop("checked", false);
55         });
56     </script>
57 </body>
58 </html>
View Code

三、篩選器

1.過濾

eq(index)        # 根據索引來獲取對象  eg:$("li").eq(1) == $("li :eq(1)")
first()          # 獲取第一個
last()           # 獲取最後一個
hasClass(class)  # 是否有具有某類CSS樣式

2.查找

children()       # 所有的孩子
siblings()       # 所有的兄弟姐妹
find()           # 搜索與表達式匹配的元素
next()           # 下一個
nextAll()        # 後面的所有元素
nextUntil()      # 下一個直到什麽為止(不包含)
prev()           # 上一個
prevAll()        # 上面的所有元素
prevUntil()      # 上一個直到什麽為止(不包含)
parent()         # 父標簽
parents()        # 所有的父標簽
parentsUntil()   # 所有的父標簽直到什麽為止(不包含)

3.文本操作

$(..).text()           # 獲取文本內容
$(..).text(“<a>1</a>”) # 設置文本內容

$(..).html()           # 獲取html內容
$(..).html("<a>1</a>") # 設置html內容

$(..).val()            # 獲取val的值
$(..).val(..)          # 設置val的值

4.樣式操作

addClass()     # 添加一類樣式
removeClass()  # 移除一類樣式
toggleClass()  # 如果存在(不存在)就刪除(添加)一類樣式

5.屬性操作

# 專門用於做自定義屬性
$(..).attr(‘n‘)          # 獲取屬性值
$(..).attr(‘n‘,‘v‘)      # 設置屬性值
$(..).removeAttr(‘n‘)    # 移除屬性


# 專門用於chekbox,radio
$(..).prop(‘checked‘)    # 獲取屬性
$(..).prop(‘checked‘, true)  # 設置屬性

切換菜單:

技術分享
 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         .menu{
11             height: 38px;
12             background-color: #eeeeee;
13             line-height: 38px;
14         }
15         .active{
16             background-color: brown;
17         }
18         .menu .menu-item{
19             float: left;
20             border-right: 1px solid red;
21             padding: 0 5px;
22             cursor: pointer;
23         }
24         .content{
25             min-height: 100px;
26             border: 1px solid #eeeeee;
27         }
28     </style>
29 </head>
30 <body>
31 
32     <div style="width: 700px;margin:0 auto">
33 
34         <div class="menu">
35             <div class="menu-item active">菜單一</div>
36             <div class="menu-item">菜單二</div>
37             <div class="menu-item">菜單三</div>
38         </div>
39         <div class="content">
40             <div>內容一</div>
41             <div class="hide">內容二</div>
42             <div class="hide">內容三</div>
43 
44         </div>
45 
46     </div>
47     <script src="jquery-1.12.4.js"></script>
48     <script>
49         $(".menu-item").click(function () {
50             $(this).addClass("active").siblings().removeClass("active");
51             $(".content").children().eq($(this).index()).removeClass("hide").siblings().addClass("hide");
52         })
53     </script>
54 </body>
55 </html>
View Code

6.文檔處理

append()     # 內部加在末尾
prepend()    # 內部加在開頭

after()      # 外部加在末尾
before()     # 外部加在開頭

remove()     # 移除整個標簽
empty()      # 清空標簽的內容
     
clone()      # 克隆標簽

7.CSS處理

$(‘t1‘).css(‘樣式名稱‘, ‘樣式值‘)

# 位置
$(window).scrollTop()        # 獲取
$(window).scrollTop(0)       # 設置
$(window).scrollLeft([val])

offset().left                # 指定標簽在html中的坐標
offset().top                 # 指定標簽在html中的坐標
position()                   # 指定標簽相對父標簽(relative)標簽的坐標

height()                     # 獲取某個元素的高度        
innerHeight()                # 獲取某個元素的高度 + 內邊距 padding
outerHeight()                # 獲取某個元素的高度 + 內邊距 padding + 邊框 border
outerHeight(true)            # 獲取某個元素的高度 + 內邊距 padding + 邊框 border + 外邊距 margin

width()                      # 獲取某個元素的寬度
innerWidth()                 # 獲取某個元素的寬度 + 內邊距 padding
outerWidth()                 # 獲取某個元素的寬度 + 內邊距 padding + 邊框 border
outerWidth(true)             # 獲取某個元素的寬度 + 內邊距 padding + 邊框 border + 外邊距 margin

四、其他

1.事件綁定
# 第一種
$(‘.c1‘).click(function(){

})
$(‘.c1‘).....

# 第二種
$(‘.c1‘).bind(‘click‘,function(){
})

$(‘.c1‘).unbind(‘click‘,function(){

})

# 第三種(重要,委托)
$(‘.c‘).delegate(‘a‘, ‘click‘, function(){

})
$(‘.c‘).undelegate(‘a‘, ‘click‘, function(){

})

# 三種方法內部均調用下面兩種方法
$(‘.c1‘).on(‘click‘, function(){

})
$(‘.c1‘).off(‘click‘, function(){

})

2.阻止事件發生:

return false

3.當頁面框架加載完成之後,自動執行

$(function(){

    $(...)

})

4.jQuery擴展:

- $.extend       $.方法
- $.fn.extend    $(..).方法

(function(){
    var status = 1;
    // 封裝變量
})(jQuery)

Python Day17(jQuery)