1. 程式人生 > >jQuery 對象和 DOM 對象

jQuery 對象和 DOM 對象

文檔 例如 裏的 dom對象 水果 innerhtml 構建 轉換 jquery

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 對象