jQuery 對象和 DOM 對象
1.DOM 對象
DOM(Document Object Model,文檔對象模型),每一份 DOM 都可以表示成一棵樹。下面來構建一個非常基本的網頁,網頁代碼如下:
//...省略其他代碼 <h3></h3> <p title="請選擇你最喜歡的水果">你最喜歡的水果是?</p> <ul> <li>蘋果</li> <li>橘子</li> <li>菠蘿</li> </ul> //...省略其他代碼
可以把上面的HTML結構描述為一棵DOM樹,在這棵DOM樹中,<h3>、<P>、<ul>以及<ul>的3個<li>子節點都是 DOM 元素節點。可以通過 JavaScript 中的 getElementsByTagName 或者 getElementById 來獲取元素節點。像這樣得到的 DOM 元素就是 DOM 對象。DOM 對象可以使用 JavaScript 中的方法,示例如下:
var domObj = document.getElementById("id"); //獲取 DOM 對象
var objHTML = domObj.innerHTML; //使用JavaScript中的屬性——innerHTML
2.jQuery 對象
jQuery 對象就是通過 jQuery 包裝 DOM 對象後產生的對象。jQuery 對象是 jQuery 獨有的。如果一個對象是 jQuery 對象,那麽就可以使用 jQuery 裏的方法。例如:
$("#foo").html();//獲取為 foo 的元素內的 html 代碼。.html()是jQuery裏的方法
這段代碼等同於:
document.getElementById("foo").innerHTML;
在 jQuery 對象中無法使用 DOM 對象的任何方法。同樣,DOM對象也不能使用 jQuery 裏的方法。
註意:用#id作為選擇符取得的是 jQuery 對象而並非 document.getElementById("id") 所得到的 DOM 對象,兩者並不等價。
3.jQuery 對象轉成 DOM 對象
jQuery 對象不能使用 DOM 中的方法,但如果對 jQuery 對象所提供的方法不熟悉,或者 jQuery 沒有封裝想要的方法,不得不使用 DOM 對象的時候,有以下兩種處理方法。
jQuery 提供了兩種方法將一個 jQuery 對象轉換成 DOM 對象,即 [index] 和 get(index)。
1)jQuery 對象是一個類似數組的對象,可以通過 [index] 的方法得到相應的 DOM 對象。jQuery 代碼如下:
var $cr = $("#cr"); // jQuery對象
var cr = $cr[0]; // DOM對象
alert( cr.checked ); // 檢測這個checkbox是否被選中了
2)另一種方法是 jQuery 本身提供的,通過 get(index) 方法得到相應的 DOM 對象。jQuery 代碼如下:
var $cr = $("#cr"); // jQuery對象
var cr = $cr.get[0]; // DOM對象
alert( cr.checked ); // 檢測這個checkbox是否被選中了
4.DOM 對象轉成 jQuery 對象
對於一個 DOM 對象,只需要用 $() 把 DOM 對象包裝起來,就可以獲得一個 jQuery 對象了。方式為 $(DOM對象)。jQuery 代碼如下:
var cr = document.getElementById("cr"); // DOM 對象
var $cr = $(cr); // jquery 對象
轉換後,可以任意使用 jQuery 中的方法。
jQuery 對象和 DOM 對象