DIV CSS 佈局教程網

jQuery基礎知識
編輯:JQuery特效代碼     

 

js與jQuery的比較與區別

js是腳本語言
jquery是用js開發出來的架構

1 定位元素
JS
document.getElementById("abc")

jQuery
$("#abc") 通過id定位
$(".abc") 通過class定位
$("div") 通過標簽定位

需要注意的是JS返回的結果是這個元素,jQuery返回的結果是一個JS的對象。以下例子中假設已經定位了元素abc。

2 改變元素的內容
JS
abc.innerHTML = "test";
jQuery
abc.html("test");

3 顯示隱藏元素
JS
abc.style.display = "none";
abc.style.display = "block";

jQuery
abc.hide();
abc.show();

abc.toggle();
//在顯示和隱藏之間切換(2012.4.21更新)

4 獲得焦點

JS和jQuery是一樣的,都是abc.focus();

5 為表單賦值
JS
abc.value = "test";
jQuery
abc.val("test");

6 獲得表單的值
JS
alert(abc.value);
jQuery
alert(abc.val());

7 設置元素不可用
JS
abc.disabled = true;
jQuery
abc.attr("disabled", true);

8 修改元素樣式
JS
abc.style.fontSize=size;
jQuery
abc.css('font-size', 20);

JS
abc.className="test";
JQuery
abc.removeClass();
abc.addClass("test");

9 Ajax
JS
自己創建對象,自己處理浏覽器兼容等亂七八糟的問題,略去不表
jQuery
$.get("abc.php?a=1&b=2", recall);
postvalue = "a=b&c=d&abc=123";
$.post("abc.php", postvalue, recall);

function recall(result) {
alert(result);
//如果返回的是json,則如下處理
//result = eval('(' + result + ')');
//alert(result);
}

10 判斷復選框是否選中
jQuery
if(abc.attr("checked") == "checked")
注意:網上說的.attr("checked") == true實際上不能用,上面這個測試過能用

二、語法總結和注意事項

1、關於頁面元素的引用
通過jquery的$()引用元素包括通過id、class、元素名以及元素的層級關系及dom或者xpath條件等方法,且返回的對象為jquery對象(集合對象),不能直接調用dom定義的方法。如:

1.      $("#msg").html();-->通過ID   

2.      $("div").html(); $("input").val(); -->通過元素名(jQuery獲取的是一個集合)   

3.      $("div p");             -->第一行代碼得到所有<div>標簽下的<p>元素。   

4.      $("div.container")      -->第二行代碼得到 class為container的<div>元素      

5.      $("div #msg");          -->第三行代碼得到<div>標簽下面id為msg的元素。   

6.      $("table a",context);   -->第四行代碼得到context為上下文的table裡面所有的連接元素。    

 

2、jQuery對象與dom對象的相互轉換
2.1只有jquery對象才能使用jquery定義的方法。注意dom對象和jquery對象是有區別的,普通的dom對象一般可以通過$()轉換成jquery對象。
如:$(document.getElementById("msg"))則為jquery對象,可以使用jquery的方法。

2.2由於jquery對象本身是一個集合。所以如果jquery對象要轉換為dom對象則必須取出其中的某一項,一般可通過索引取出。
如:$("#msg")[0],$("div").eq(1)[0],$("div").get()[1],$("td")[5]這些都是dom對象,可以使用dom中的方法,但不能再使用Jquery的方法。

以下幾種寫法都是正確的:

1.      $("#msg").html();   

2.      $("#msg")[0].innerHTML;   

3.      $("#msg").eq(0)[0].innerHTML;   

4.      $("#msg").get(0).innerHTML;  

對於獲取的元素集合,獲取其中的某一項(通過索引指定)可以使用eq或get(n)方法或者索引號獲取,要注意,eq返回的是jquery對象,而 get(n)和索引返回的是dom元素對象。如要獲取第三個 <div>元素的內容。有如下兩種方法:

1.      $("div").eq(2).html();              調用jquery對象的方法   

2.      $("div").get(2).innerHTML;       調用dom的方法屬性  

3、同一函數實現set和get
Jquery中的很多方法都是如此,主要包括如下幾個:

1.      $("#msg").html();              返回id為msg的元素節點的html內容。   

2.      $("#msg").html("<b>new content</b>");        將“<b>new content</b>” 作為html串寫入id為msg的元素節點內容中,頁面顯示粗體的new content   

3.      $("#msg").text();              返回id為msg的元素節點的文本內容。   

4.      $("#msg").text("<b>new content</b>");           將“<b>new content</b>” 作為普通文本串寫入id為msg的元素節點內容中,頁面顯示<b>new content</b>   

5      $("#msg").height();              返回id為msg的元素的高度   

6      $("#msg").height("300");       將id為msg的元素的高度設為300   

7     $("#msg").width();              返回id為msg的元素的寬度    

8    

操作元素的樣式
主要包括以下幾種方式:
1.     $("#msg").css("background");              //返回元素的背景顏色    
2.     $("#msg").css("background","#ccc")       //設定元素背景為灰色    
3.     $("#msg").height(300); $("#msg").width("200");       //設定寬高    
4.     $("#msg").css({ color: "red", background: "blue" });//以名值對的形式設定樣式    
5.     $("#msg").addClass("select");       //為元素增加名稱為select的class    
6.     $("#msg").removeClass("select");       //刪除元素名稱為select的class    
7.     $("#msg").toggleClass("select");       //如果存在(不存在)就刪除(添加)名稱為select的class   

6、完善的事件處理功能
Jquery已經為我們提供了各種事件處理方法,我們無需在html元素上直接寫事件,而可以直接為通過jquery獲取的對象添加事件。
如:
1.     $("#msg").click(function(){alert("good")})    //為元素添加了單擊事件    
2.     $("p").click(function(i){this.style.color=['#f00','#0f0','#00f'][i]})   //為三個不同的p   
元素單擊事件分別設定不同的處理
jQuery中幾個自定義的事件:
(1)hover(fn1,fn2):當鼠標移動到一個匹配的元素上面時,會觸發指定的第一個函數。當鼠標移出這個元素時,會觸發指定的第二個函數。
1.     //當鼠標放在表格的某行上時將class置為over,離開時置為out。    
2.     $("tr").hover(function(){    
3.     $(this).addClass("over");    
4.     },    
5.            function(){    
6.            $(this).addClass("out");    
7.     });   

(2)ready(fn):當DOM載入就緒可以查詢及操縱時綁定一個要執行的函數。
1.     $(document).ready(function(){alert("Load Success")})    
2.     //頁面加載完畢提示“Load Success”,不同於onload事件,onload需要頁面內容加載完畢(圖片等    
3.     ),而ready只要頁面html代碼下載完畢即觸發。與$(fn)等價   
(3)toggle(evenFn,oddFn): 每次點擊時切換要調用的函數。如果點擊了一個匹配的元素,則觸發指定的第一個函數,當再次點擊同一元素時,則觸發指定的第二個函數。隨後的每次點擊都重復對這兩個函數的輪番調用。
1.     //每次點擊時輪換添加和刪除名為selected的class。    
2.     $("p").toggle(function(){    
3.            $(this).addClass("selected");      
4.     },function(){    
5.            $(this).removeClass("selected");    
6.     });   
(4)trigger(eventtype): 在每一個匹配的元素上觸發某類事件。例如:
1.     $("p").trigger("click");       //觸發所有p元素的click事件   
(5)bind(eventtype,fn),unbind(eventtype): 事件的綁定與反綁定從每一個匹配的元素中(添加)刪除綁定的事件。例如:
1.     $("p").bind("click", function(){alert($(this).text());});     
2.     //為每個p元素添加單擊事件    
3.     $("p").unbind();       //刪除所有p元素上的所有事件    
4.     $("p").unbind("click")       //刪除所有p元素上的單擊事件   
7、擴展我們需要的功能
1.     $.extend({    
2.            min: function(a, b){return a < b?a:b; },    
3.            max: function(a, b){return a > b?a:b; }    
4.     });       //為jquery擴展了min,max兩個方法   
使用擴展的方法(通過“$.方法名”調用):
1.     alert("a=10,b=20,max="+$.max(10,20)+",min="+$.min(10,20));    
----------->ajax編程,請見其它筆記.
8、漸入淡出
1.     $("#msg").fadeIn("fast");       
2.     $("#msg").fadeOut("slow"); 

 

$("#msg").width("300");       將id為msg的元素的寬度設為300   

9     $("input").val(");       返回表單輸入框的value值   

10   $("input").val("test");       將表單輸入框的value值設為test   

11.   $("#msg").click();       觸發id為msg的元素的單擊事件   

12.   $("#msg").click(fn);       為id為msg的元素單擊事件添加函數  

同樣blur,focus,select,submit事件都可以有這兩種調用方法

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved