jquery物件和DOM物件的區別及互相轉化

langgufu314發表於2012-02-06

jQuery物件和DOM物件使用說明,需要的朋友可以參考下。
1.jQuery物件和DOM物件
第一次學習jQuery,經常分辨不清哪些是jQuery物件,哪些是 DOM物件,因此需要重點了解jQuery物件和DOM物件以及它們之間的關係.
DOM物件,即是我們用傳統的方法(javascript)獲得的物件,jQuery物件即是用jQuery類庫的選擇器獲得的物件;
複製程式碼 程式碼如下:

var domObj = document.getElementById("id"); //DOM物件
var $obj = $("#id"); //jQuery物件;

jQuery物件就是通過jQuery包裝DOM物件後產生的物件,它是jQuery獨有的。如果一個物件是jQuery物件,那麼就可以使用jQuery裡的方法,例:
$("#foo").html(); //獲取id為foo的元素內的html程式碼,html()是jQuery特有的方法;
上面的那段程式碼等同於:
document.getElementById("foo").innerHTML;

注意:在jQuery物件中無法使用DOM物件的任何方法。
例如$("#id").innerHTML 和$("#id").checked之類的寫法都是錯誤的,可以用$("#id").html()和$("#id").attr ("checked")之類的 jQuery方法來代替。同樣,DOM物件也不能使用jQuery方法。學習jQuery開始就應當樹立正確的觀念,分清jQuery物件和DOM物件之間的區別,之後學習 jQuery就會輕鬆很多的。

2.jQuery物件和DOM物件的互相轉換

在上面第一點說了,jquery物件和dom物件是不一樣的!比如jquery物件不能使用dom的方法,dom物件不能使用jquery方法,那假如我 jquery沒有封裝我要的方法,那能怎麼辦呢?
這時我們可以將jquer物件轉換成dom物件

jquery物件轉換成 dom物件
jquery提供了兩種方法將一個jquery物件轉換成一個dom物件,即[index]和get(index)。可能有人會覺得奇怪,怎麼是用下標呢,沒錯,jquery物件就是一個陣列物件.
下面程式碼將演示一個jquery物件轉換成dom物件,再使用dom物件的方法
複製程式碼 程式碼如下:

var $cr=$("#cr"); //jquery物件
var cr = $cr[0]; //dom物件 也可寫成 var cr=$cr.get(0);
alert(cr.checked); //檢測這個checkbox是否給選中

dom物件轉換成jquery物件
對於一個dom物件,只需要用$()把dom物件包裝起來,就可以獲得一個jquery物件了,方法為$(dom物件);
複製程式碼 程式碼如下:

var cr=document.getElementById("cr"); //dom物件
var $cr = $(cr); //轉換成jquery物件

轉換後可以任意使用jquery中的方法了.

通過以上的方法,可以任意的相互轉換jquery物件和dom物件.
最後再次強調,dom物件才能使用dom中的方法,jquery物件不可以使用dom中的方法,但 jquery物件提供了一套更加完善的工具用於操作dom,關於jquery的dom操作將在後面的文章進行詳細講解.


ps: 平時用到的jquery物件都是通過$()函式製造出來的,$()函式就是一個jquery物件的製造工廠.
建議:如果獲取的物件是 jquery物件,那麼在變數前面加上$,這樣方便容易識別出哪些是jquery物件,例如:
var $variable = jquery物件;
如果獲取的是dom物件,則定義如下:
var variable = dom物件

相關文章