關於jQuery

一:jQuery簡介

jQuery是一個JavaScript庫,$就是jQuery的一個簡寫形式。

eg:$(“#foo”)和jQuery(“#foo”)是等價的;$.ajax和jQuery.ajax是等價的。

二:DOM對象與jQuery對象

DOM對象與jQuery對象:
       通過JavaScript中的getElementsByName、getElementById等方法獲取元素節點,得到的就是DOM對象。

       jQuery對象就是通過jQuery包裝DOM對象後產生的對象。

DOM對象與jQuery對象的相互轉換:

一個約定:如果獲取的對象是jQuery對象,那麼在變量前面加上$,例如:
   var  $variable = jQuery對象。
   如果獲取的是DOM對象,則定義如下:
   var  variable=DOM對象


1.DOM對象轉換成jQuery對象

   對於一個DOM對象,只要用$( )把DOM對象包裝起來,就可以獲得一個jQuery對象了。即:$(DOM對象)。

2. jQuery對象轉換成DOM對象
    方式一:
    由於jQuery對象是一個類似數組的對象,可以通   過[index]的方法得到相應的DOM對象。eg:
    var $a = $(“#a”);
    var a=$a[0];
     方式二:
     通過jQuery對象本身提供的get(index)方法。eg:
     var $a=$(“#a”);

     var a=$a.get(0);

三:$(document).ready(function(){})

在jQuery中,通過使用:
   $(document).ready(function(){
          // DOM結構繪製完畢後執行此處代碼
   });
   可以編寫DOM結構繪製完畢後執行的代碼
   該結構也可簡寫成:
   $(function(){
          // DOM結構繪製完畢後執行此處代碼

    });

eg:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>我的第一個jQuery網頁</title>
	<!--引入jQuery庫-->
	<script type="text/javascript" src="jquery-3.1.1.js"></script>
	<script type="text/javascript">
	    $(function(){
	    	alert("hello,歡迎學習jQuery!");
	    });
	</script>
</head>
<body>
	
</body>
</html>

運行結果圖:


四:jQuery選擇器

(1)id選擇器 $(#ID名稱)
      eg:    
      $( "#myDiv").css( "border", "3px solid red" );

   此代碼對應JavaScript的:          document.getElementById(" myDiv ").style.border='3px solid red';


(2)通用選擇器 $("*" )

(3)類選擇器 $(".class") 

(4).複選框選擇器  $(":checkbox" ) 

(5)後代選擇器 $( "ancestor descendant" ) 

(6)子選擇器 $("parent > child" )

(7)多元素選擇器 $( "selector1, selector2, selectorN" ) 

eg:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>jQuery選擇器</title>
	<style type="text/css">
	    .divclass{
            width:200px;
            height:200px;
            background-color: yellow;
	    }
	</style>
	<script type="text/javascript" src="jquery-3.1.1.js"></script>
	<script type="text/javascript">
	    $(function(){
	    	/**
            $("#btn").click(function(){
            	$("#mydiv").css("background-color","red");
            });
            **/
            $("*").css("background-color","#FAEBD7");

            $("#btn").bind("click",function(){
            	$("#mydiv").css("background-color","#aabbcc");
            });

            $("#btn2").click(function(){
            	$(".divclass").css("background-color","red");
            });
	    });
	</script>
</head>
<body>
	<div id="mydiv" class="divclass"></div>
	<input type="button" value="ID點擊變色" id="btn"/>   <br/><br/>
	<input type="button" value="class點擊變色" id="btn2">
	<div class="divclass"></div>
</body>
</html>

運行結果圖:

五:事件冒泡

當在有包含關係的DOM層級上綁定事件時,事件會按照DOM層級結構順序從內到外依次觸發,這就是“事件冒泡”。
停止事件冒泡的方法:
   在事件處理函數中加上event事件對象,調用event事件對象的stopPropagation()方法。
補充:阻止默認行爲也是用event事件對象:
   event.preventDefault(); 

eg1:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>事件冒泡</title>
	<style type="text/css">
	    #parentDiv{
	    	width:400px;
	    	height:400px;
	    	background-color:#7FFF00;
	    }
	    #childDiv{
	    	width:200px;
	    	height:200px;
	    	background-color:yellow;
	    	margin:50px auto;
	    }
	</style>
	<script type="text/javascript" src="jquery-3.1.1.js"></script>
	<script type="text/javascript">
	    $(function(){
             $("#parentDiv").bind("click",function(){
                    alert("parentDiv被點擊了");
             });
             $("#childDiv").bind("click",function(event){
                    alert("childDiv被點擊了");
                    event.stopPropagation();   // 停止事件冒泡    
             });
             $("body").bind("click",function(){
             	    alert("body被點擊了");
             });
	    });
	</script>
</head>
<body>
	<div id="parentDiv">
	     這是parentDiv裏的內容
         <div id="childDiv">
              這是childDiv裏的內容
         </div>
         這是parentDiv裏的內容
	</div>
    

</body>
</html>

運行結果圖:


eg2:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>阻止默認行爲</title>
	<script type="text/javascript" src="jquery-3.1.1.js"></script>
	<script type="text/javascript">
	    $(function(){
	    	
             $("#registerForm").bind("submit",function(event){
             	    var username=$("#uname").val();
                    var password=$("#upwd").val();
                    if(username==""){
             	            alert("用戶名不能爲空!");
                            event.preventDefault();   // 阻止提交表單的默認行爲
                     }
                     if(password.length<6){
                     	    alert("密碼不能小於6位!");
                            event.preventDefault();   // 阻止提交表單的默認行爲
                     }
             });


             
	    });
	</script>
</head>
<body>
	<form action="serverURL" method="post" id="registerForm">
     註冊用戶名:<input type="text" name="uname" placeholder="請輸入用戶名" id="uname"/>
  <br/> <br/>
  註冊密碼:<input type="password" name="pwd" placeholder="請輸入密碼" id="upwd">  
  <br/> <br/>
  <input type="submit" value="註冊"/>  <input type="reset" value="重置"/>
	</form>
</body>
</html>

運行結果圖:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章