jQuery對象和DOM對象互換

對于jQuery的初學者來說,經(jīng)常分辨不清DOM對象和jQuery對象,本文簡單說明兩者的區(qū)別和兩種對象相互轉換的方法。如你已掌握可以略過,如文中有錯誤之處請您指正。

DOM對象


DOM對象對有HTML基礎的人來說,并不陌生:DOM(Document Object Model)即文檔對象模型,每一份DOM都可以表示成一棵樹,如下基本網(wǎng)頁:

可以將上面HTML結構描述為一顆DOM樹:

? ? ? ? ? ? ? ? ? ? ?head——meta、title

HTML——

? ? ? ? ? ? ? ? ? ? body——h1、p、ul(li、li、li)

在這顆DOM樹中,<h1>、<p>、<ul>和<ul>的三個<li>子節(jié)點都是DOM元素節(jié)點??梢酝ㄟ^JavaScript中的 getElementByTagName 或者 getElementById 來獲取元素節(jié)點。像這樣得到的DOM元素就是DOM對象。DOM對象可以用JavaScript中的方法:

var domObj = document.getElementById("id"); ?//獲得DOM對象

var ObjHTML = domObj.innerHTML; ?//使用JavaScript中的方法——innerHTML

jQuery對象


jQuery對象就是通過jQuery包裝DOM對象后產(chǎn)生的對象。

jQuery對象是jQuery獨有的。如果一個對象是jQuery對象,那么就可以使用jQuery里的方法,例如:

$("#foo").html(); ?//獲取id為foo的元素內(nèi)的html代碼

這段代碼等同于:

document.getElementById("foo").innerHTML;

在jQuery對象中無法使用DOM對象的任何方法。如 $("#id").innerHTML 和$("#id").checked 之類的寫法都是錯誤的,可以使用 $("#id").html() 和 $("#id").attr("checked") 之類的jQuery方法代替。同樣,DOM對象也不能使用jQuery里的方法。例如:document.getElementById("id").html()也會報錯,只能用 document.getElementById("id").innerHTML語句。

用 #id 作為選擇符取得的是jQuery對象而并非document.getElementById("id")所得到的DOM對象,兩者并不等價。

DOM對象轉換為jQuery對象


對于一個DOM對象,只需要用 $() 把DOM對象包裝起來,就可以獲得一個jQuery對象了,方式為 $("DOM對象")。jQuery代碼如下:

var cr = document.getElementById("cr"); ?//DOM對象

var $cr = $(cr); //jQuery對象

轉換后,可以任意使用jQuery中的方法。

jQuery對象轉換為DOM對象


jQuery對象轉換為DOM對象,一般有以下兩種方法:

(1)jQuery對象是一個數(shù)組對象,可以通過 [index] 的方法得到相應的DOM對象:

var $cr = $("#cr"); ?//jQuery對象

var cr = $cr[0]; ?//DOM對象

alert(cr.checked); ?//檢測這個checkbox是否被選中

(2)另一種是jQuery本身提供的,通過 get(index) 方法得到相應的DOM對象:

var $cr = $("#cr"); ?//jQuery對象

var cr = $cr.get(0); //DOM對象

alert(cr.checked);//檢測這個checkbox是否被選中

關于對象變量的命名建議


約定好代碼的編寫的風格,對自己的編程速度和日后理解還有團隊的配合都有很好的作用,這里就簡單介紹對象變量的命名建議,如有更好的方法,請交流學習。

一個簡單的方法,如果獲取的對象是jQuery對象,那么變量前加上$:

var $variable = jQuery對象;

如果獲取的對象是DOM對象,則定義如下:

var variable = DOM對象;

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 工廠模式類似于現(xiàn)實生活中的工廠可以產(chǎn)生大量相似的商品,去做同樣的事情,實現(xiàn)同樣的效果;這時候需要使用工廠模式。簡單...
    舟漁行舟閱讀 8,120評論 2 17
  • 一、樣式篇 第1章 初識jQuery (1)環(huán)境搭建 進入官方網(wǎng)站獲取最新的版本 http://jquery.co...
    凜0_0閱讀 3,667評論 0 44
  • 初學jQuery,會對jQuery對象和DOM對象心存很大的疑惑,因此有必要明白他們之間的區(qū)別和聯(lián)系。DOM對象是...
    文字伴隨一生閱讀 735評論 1 1
  • 單例模式 適用場景:可能會在場景中使用到對象,但只有一個實例,加載時并不主動創(chuàng)建,需要時才創(chuàng)建 最常見的單例模式,...
    Obeing閱讀 2,314評論 1 10
  • 一周前一則微博新聞:大學生情侶飛機上吵架,男子欲強行打開應急艙門自殺。 在一趟重慶飛往北京的航班上,一男子與其女友...
    吳在天閱讀 873評論 5 11

友情鏈接更多精彩內(nèi)容