1. 程式人生 > >jQuery(案例實現)

jQuery(案例實現)

一、jQuery概述

1、什麼是jQuery?

jQuery是一個快速、簡潔的JavaScript框架,是繼Prototype之後又一個優秀的JavaScript程式碼庫(或JavaScript框架)。jQuery設計的宗旨是“write Less,Do More”,即倡導寫更少的程式碼,做更多的事情。它封裝JavaScript常用的功能程式碼,提供一種簡便的JavaScript設計模式,優化HTML文件操作、事件處理、動畫設計和Ajax互動。

2、jQuery的核心特性

jQuery的核心特性可以總結為:具有獨特的鏈式語法和短小清晰的多功能介面;具有高效靈活的css選擇器,並且可對CSS選擇器進行擴充套件;擁有便捷的外掛擴充套件機制和豐富的外掛。jQuery相容各種主流瀏覽器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等

3、JQuery的作用:

  • 寫更少的程式碼,做更多的事情: write Less ,Do more
  • 將我們頁面的JS程式碼和HTML頁面程式碼進行分離

二、jQuery入門

1、JQ的開發步驟:

1. 匯入JQ相關的檔案
<script type="text/javascript" src="js/jquery-1.11.0.js"></script>
2.  文件載入完成事件: $(function)  : 頁面初始化的操作: 繫結事件, 啟動頁面定時器
 $(function () {}
3. 確定相關操作的事件
用JQ選擇器選定要繫結事件的按鈕或者元素,通過.事件的方法繫結時間,裡面再巢狀一個函式
4. 事件觸發函式
5. 函式裡面再去操作相關的元素

2、JS和JQ文件流載入區別

<script>
			//js文件載入完成的事件
			window.onload = function(){
				alert("window.onload   111");
			}
			
			window.onload = function(){
				alert("window.onload   222");
			}
			
			/*文件載入完成的事件*/
			jQuery(document).ready(function(){
			 	alert("jQuery(document).ready(function()");
			}
); /* jQuery 簡寫成 $ */ $(document).ready(function(){ alert("$(document).ready(function()"); }); /* 最簡單的寫法 */ $(function(){ alert("$(function(){"); });
</script>

js會覆蓋,而JQ不會覆蓋

3、JQ和JS之間的轉換

  • JQ物件,只能呼叫JQ的屬性和方法
  • JS物件 只能呼叫JS的屬性和方法
function changeJS(){
				var div = document.getElementById("div1");
//				div.innerHTML = "JS成功修改了內容"
				//將JS物件轉成JQ物件
				$(div).html("轉成JQ物件來修改內容")
			}
			
			$(function(){
				//給按鈕繫結事件
				$("#btn2").click(function(){
					//找到div1
//					$("#div1").html("JQ方式成功修改了內容");
					//將JQ物件轉成JS物件來呼叫
					var $div = $("#div1");
//					var jsDiv = $div.get(0);
					var jsDiv = $div[0];
					jsDiv.innerHTML="jq轉成JS物件成功";
				});
			});

三、JQuery中的選擇器

1、基本選擇器

  • ID選擇器 : #ID的名稱
  • 類選擇器: 以 . 開頭 .類名
  • 元素選擇器: 標籤的名稱
  • 萬用字元選擇器: *
  • 選擇器,選擇器: 選擇器1,選擇器2

案例:

	<!--
			- ID選擇器 :     #ID的名稱
			- 類選擇器:     以 . 開頭  .類名
			- 元素選擇器:    標籤的名稱
			- 萬用字元選擇器:   * 
			- 選擇器,選擇器:  選擇器1,選擇器2
		-->
		<script>
			//文件載入事件,頁面初始化的操作
			$(function(){
				//初始化操作: 給按鈕繫結事件
				$("#btn1").click(function(){
					$("#two").css("background-color","palegreen");					
				});
				
				//找出mini類的所有元素
				$("#btn2").click(function(){
					$(".mini").css("background-color","palegreen");					
				});
				$("#btn3").click(function(){
					$("div").css("background-color","palegreen");					
				});
				$("#btn4").click(function(){
					$("*").css("background-color","palegreen");
					
				});
				/*選擇器分組*/
				
				//找出mini類 和 span元素
				$("#btn5").click(function(){
					$(".mini,span").css("background-color","palegreen");
				});
			});
		</script>

2、層級選擇器

  • 子元素選擇器: 選擇器1 > 選擇器2
  • 後代選擇器: 選擇器1 兒孫
  • 相鄰兄弟選擇器 : 選擇器1 + 選擇器2 : 找出緊挨著的一個弟弟
  • 通用兄弟選擇器: 選擇器1~ 選擇器2 : 找出所有的弟弟
<script>
			//文件載入事件,頁面初始化的操作
			$(function(){
				//初始化操作: 給按鈕繫結事件
				//找出body下面的子div   
				$("#btn1").click(function(){
					$("body > div").css("background-color","palegreen");					
				});
				//找出body下面的所有div
				$("#btn2").click(function(){
					$("body div").css("background-color","palegreen");					
				});
				$("#btn3").click(function(){
					$("#one+div").css("background-color","palegreen");					
				});
				$("#btn4").click(function(){
					$("#two~div").css("background-color","palegreen");					
				});
				
			});
		</script>

3、JQ中的基本過濾器

:even

​ :odd

​ :gt

​ :lt

​ :eq

​ :first

​ :last

		<script>
			$(function(){
				/<script>
			//文件載入事件,頁面初始化的操作
			$(function(){
				
				//初始化操作: 給按鈕繫結事件
				//過濾出所有div中第一個元素
				$("#btn1").click(function(){
					$("div:first").css("background-color","palegreen");					
				});
				
				//過濾出所有div中偶數位的div
				$("#btn2").click(function(){
					$("div:even").css("background-color","palegreen");					
				});
				$("#btn3").click(function(){
					$("div:odd").css("background-color","palegreen");					
				});
				$("#btn4").click(function(){
					$("div:gt(2)").css("background-color","palegreen");					
				});
			
			});
		</script>

4、JQ中的屬性選擇器

		$(function(){
				//找到有name屬性的input
				$("#btn1").click(function(){
					$("input[name]").attr("checked",true);
				});
				$("#btn2").click(function(){
					$("input[name='accept']").attr("checked",true);
				});
				$("#btn3").click(function(){
					$("input[name='newsletter'][value='Hot Fuzz']").attr("checked",true);
				});
			});

5、JQ中的表單過濾器

:selected

:checked

<script>
  //1.文件載入事件	
  $(function(){
    $(":text").css("background-color","pink");
  });
</script>

四、JQ中常用函式及遍歷陣列

$(function)  : 文件載入完成的事件
css()  : 	修改css樣式
prop() :    修改屬性/ 獲取屬性
html() :    修改innerHTML

append : 	給自己新增子節點
appendTo :  將自己新增到別人家,給自己找一個爹
prepend :   在自己最前面新增子節點
after	:   在自己後面新增一個兄弟
empty	:   清空所有子節點

$(cities).each(function(i,n){
  	
})

$.each(arr,function(i,n){
  
});

五、JQ中的動畫效果

show()
hide()
slideUp
slideDown
fadeIn
fadeOut
animate : 自定義動畫

六、使用JQuery完成頁面定時彈出廣告

1、 需求分析

當用戶開啟介面,3秒鐘之後彈出廣告,這個廣告顯示5秒鐘,隱藏廣告

2、 技術分析

定時器: setTimeout

顯示和隱藏: style.display = “block/none”

3、步驟分析

  1. 匯入JQ的檔案
  2. 編寫JQ的文件載入事件
  3. 啟動定時器 setTimeout("",3000);
  4. 編寫顯示廣告的函式
  5. 在顯示廣告裡面再啟動一個定時器
  6. 編寫隱藏廣告的函式

4、程式碼實現

<script>
			//顯示廣告
			function showAd(){
				$("#img1").slideDown(2000);
				setTimeout("hideAd()",3000);
			}
			//隱藏廣告
			function hideAd(){
				$("#img1").slideUp(2000);
			}
			$(function(){
				setTimeout("showAd()",3000);
			});
		</script>

七、使用JQ完成表格的隔行換色

1、需求分析

在我們的實際開發過程中,我們的表格如果所有的行都是一樣的話,很容易看花眼,所以我們需要讓我們的表格隔行換色

2、技術分析

獲取所有行 table.rows

遍歷所有行

根據行號去修改每一行的背景顏色: bgColor

​ style.backgroundColor = “red”

3、步驟分析

  1. 匯入JQ的包
  2. 文件載入完成函式: 頁面初始化
  3. 獲得所有的行 : 元素選擇器
  4. 根據行號去修改顏色

5、程式碼實現

	$(function(){
				//獲得所有的行 :   元素選擇器
				$("tbody > tr:even").css("background-color","#CCCCCC");
				//修改基數行
				$("tbody > tr:odd").css("background-color","#FFF38F");
//				$("tbody > tr").css("background-color","#FFF38F");
				
				
			});

八、使用JQuery完成表單的全選全不選功能以及隔行換色

1、需求分析

在我們對錶格處理的時,有些情況下,我們需要對錶格進行批量處理,,隔行換色

2、程式碼實現:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <script type="text/javascript" src="js/jquery-1.11.0.js"></script>
    <script>

        $(function () {
            $("tr:even:gt(0)").css("background-color","#CCCCCc");
            //滑鼠點選後觸發
            $("tr:odd").mousedown(function(){
                $("tr:odd").css("background-color","red");
            });
            //通過滑鼠在元素上移動
            $("tr:odd").mousemove(function(){
                $("tr:odd").css("background-color","yellow");
            });
            //mouseout事件在滑鼠從元素上離開後會觸發
            $("tr:odd").mouseout(function(){
                $("tr:odd").css("background-color","blue");
            });
            //為元素繫結函式,點選
            $("#cheack1").click(function(){
                //全選和取消全選
                $("input[type='checkbox']:gt(0)").prop("checked",this.checked);
                $("body > table > tbody > tr:nth-child(2) > td:nth-child(1) > input[type="checkbox"]")
            });

        });
    </script>
</head>
<body>
<table border="1px" width="300px" cellpadding="0" cellspacing="0">
    <tr>
        <th><input type="checkbox" id="cheack1"/></th>
        <th>姓名</th>
        <th>年齡</th>
        <th>愛好</th>
    </tr>
    <tr align="center">
        <td><input type="checkbox"/></td>
        <td >江彬</td>
        <td>24</td>
        <td>程式設計</td>
    </tr>
    <tr align="center">
        <td><input type="checkbox"/></td>
        <td>初識</td>
        <td>22</td>
        <td>看書</td>
    </tr>
    <tr align="center">
        <td><input type="checkbox"/></td>
        <td>張三</td>
        <td>26</td>
        <td>鞋子</td>
    </tr>
    <tr align="center">
        <td><input type="checkbox"/></td>
        <td>王五</td>
        <td>23</td>
        <td>看電影</td>
    </tr>

</table>
</body>
</html>

九、使用JQ完成省市聯動效果

1、需求分析

在我們的登錄檔單中,通常我們需要知道使用者的籍貫,需要一個給用選擇的項,當用戶選中了省份之後,列出省下面所有的城市

2、技術分析

  1. 準備工作 : 城市資訊的資料
  2. 新增節點 : appendChild (JS)
    1. append : 新增子元素到末尾
    2. appendTo : 給自己找一個爹,將自己新增到別人家裡
    3. prepend : 在子元素前面新增
    4. after : 在自己的後面新增一個兄弟
  3. 遍歷的操作:

3、步驟分析

  1. 匯入JQ的檔案
  2. 文件載入事件:頁面初始化
  3. 進一步確定事件: change事件
  4. 函式: 得到當前選中省份
  5. 得到城市, 遍歷城市資料
  6. 將遍歷出來的城市新增到城市的select中

4、程式碼實現

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>省市聯動效果製作</title>
    <script type="text/javascript" src="js/jquery-1.11.0.js"></script>
    <script>
        /*
         準備工作 : 準備資料
         */
        var provinces = [
            ["深圳市","東莞市","惠州市","廣州市"],
            ["長沙市","岳陽市","株洲市","湘潭市"],
            ["廈門市","福州市","漳州市","泉州市"]
        ];
        $(function () {
            $("#province").change(function(){
                var citys=provinces[this.value];
                //清空城市資訊
                $("#city").empty();
                //遍歷城市資訊
                $(citys).each(function(i,n){
                    $("#city").append("<option>"+n+"</option>");
                })

            });
        });
    </script>
</head>
<body>
<!--選擇省份-->
<select name="sheng" id="province">
    <option value="1">請選擇</option>
    <option value="0">廣東</option>
    <option value="1">湖南</option