最近在學習jQuery,在網上看到有幾篇關於jQuery的文章,寫的不錯轉載過來跟大家分享一下; 一、JQuery是什麼 JQuery是什麼?始終是縈繞在我心中的一個問題: 借鑒網上同學們的總結,可以從以下幾個方面觀察。 不使用JQuery時獲取DOM文本的操作如下: 1 document.getE ...
最近在學習jQuery,在網上看到有幾篇關於jQuery的文章,寫的不錯轉載過來跟大家分享一下;
一、JQuery是什麼
JQuery是什麼?始終是縈繞在我心中的一個問題:
借鑒網上同學們的總結,可以從以下幾個方面觀察。
不使用JQuery時獲取DOM文本的操作如下:
1 |
document.getElementById( 'info' ).value = 'Hello World!' ;
|
使用JQuery時獲取DOM文本操作如下:
1 |
$( '#info' ).val( 'Hello World!' );
|
嗯,可以看出,使用JQuery的優勢之一是可以使代碼更加簡練,使開發人員更加專註於邏輯本身。
二、JQuery能做什麼
jQuery使用戶能更方便地處理HTML、events、實現動畫效果,並且方便地為網站提供AJAX交互。
jQuery庫包含以下功能:HTML元素選取、HTML元素操作、CSS操作、HTML事件函數、JavaScript特效和動畫、HTML|DOM遍歷和修改、AJAX、Utilities。
jQuery使用戶方便快捷獲取DOM元素、動態修改頁面樣式、動態改變DOM內容、響應用戶的交互操作、為頁面添加動態效果、統一Ajax操作、簡化常見的JavaScript任務。
上述是對JQuery比較中肯的評價,節選其中的關鍵字可以粗略的觀察到:
-
方便的選取DOM元素,操作DOM元素。(HTML元素選取、HTML元素操作、獲取DOM元素、動態修改頁面樣式、動態改變DOM內容)
-
響應用戶操作。(HTML事件函數、JavaScript特效和動畫、響應用戶的交互操作、為頁面添加動態效果)
-
簡化AJAX操作。(方便地為網站提供AJAX交互、統一Ajax操作)
即:方便DOM的選取和操作、響應用戶操作、簡化AJax操作。
三、DOM是什麼
上述提到了DOM元素,不瞭解,查閱總結如下:
DOM 全稱是 Document Object Model,是文檔對象模型。
通過DOM元素,可以方便的操作HTML中的節點,比如獲取節點的內容,添加某些元素,刪除某些元素。
也就是說,DOM元素和HTML息息相關,它將HTML中的一個個標簽封裝成DOM元素,以便於JavaScript進行操作。
1 2 3 4 5 6 7 8 9 10 11 12 |
< html >
< body >
< div id="info">
< p >Test</ p >
</ div >
< script >
window.onload = function(){
document.getElementById("info").innerHTML="success";
}
</ script >
</ body >
</ html >
|
其中document.getElementById("info")就是將id為info的標簽封裝成為一個DOM元素,接下來便可以方便的操作這個DOM對象,例如修改它的文本內容等等。
四、JQuery與DOM之間的關係
JQuery對象與DOM對象之間有什麼區別?
先瞭解什麼是JQuery對象:
JQuery對象就是用JQuery包裝DOM之後產生的對象。JQuery對象是JQuery獨有的,可以使用JQuery的各種方法。
1 |
$( "#test" ).html();
|
意思是指:獲取ID為test的元素內的html代碼。其中html()是jQuery里的方法 。
這段代碼的作用等同於用DOM實現代碼:
1 |
document.getElementById( "id" ).innerHTML;
|
雖然jQuery對象是包裝DOM對象後產生的,但是jQuery無法使用DOM對象的任何方法,同理DOM對象也不能使用jQuery里的方法。
還需要註意一點的是:
用#id作為選擇器獲取得的是jQuery對象,document.getElementById("id")得到的DOM對象,這兩者並不等價。
另外,JQuery對象與DOM對象之間可以互相轉換。
JQuery對象 -> DOM對象
兩種轉換方式將一個JQuery對象轉換成DOM對象:[index]和.get(index);
-
jQuery對象是一個數據對象,可以通過[index]的方法,來得到相應的DOM對象。
1 2 var
v1 = $(
"#test"
) ;
//jQuery對象
var
v2 = $v1[0];
//DOM對象
-
通過.get(index)方法,得到相應的DOM對象。
1 2 var
v1 = $(
"#test"
);
//jQuery對象
var
v2 = v1.get(0);
//DOM對象
DOM對象 -> JQuery對象
對於已經是一個DOM對象,只需要用$()把DOM對象包裝起來,就可以獲得一個jQuery對象了。如$(document.getElementById("test"))
1 2 |
var v1=document.getElementById( "test" ); //DOM對象
var v2=$(v1); //jQuery對象
|
DOM對象轉換為JQuery對象之後就可以使用JQuery的方法了。
需要再次強調註意的是:DOM對象才能使用DOM中的方法,jQuery對象是不可以用DOM中的方法。
五、JQuery中的“$”有什麼作用
這個問題解決之後,還有一個疑問:我們經常在JQuery看見$('div')、$('#id')、$('.class')等類似的代碼。那麼其中的"$"究竟有什麼作用呢?
$其實就是jQuery的別稱。是jQuery提供的一個函數,用來將DOM元素、選擇器包裝成jQuery對象。
1 2 |
var v1 = $( '#id' );
var v2 = jQuery( '#id' );
|
以上兩者是等同的。
所以"$"其實是一個符號,$()代替了jQuery(),當然你也可以使用其他的字元來代替"$"
1 2 |
var jq = jQuery.noConflict();
var v1 = jq( '#id' ); // 等同於var v1 = $('#id');
|