jQurey對象和DOM對象的相互轉換

今天在寫這段程序是出現錯誤

var $sibing=$("p").siblings();
alert($sibing.length);
for(var i=0;i<$sibing.length;i++){
 alert($sibing.get(i).html());
}
正確的應該是

var $sibing=$("p").siblings();
alert($sibing.length);
for(var i=0;i<$sibing.length;i++){
 alert($sibing.get(i).innerHTML);
}
因爲$sibing.get(i)時已經將jquery對象轉成了DOM對象。所以下面的纔是正確的,正好藉此機會記錄自己的錯誤經常看看引以爲戒。


如果一個獲取的是jQuery對象,那麼我們在變量前面加上$,如:

var  $variable  =   jQuery 對象 ;

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

var  variable   =   DOM對象;

本書中的例子均會以這種方式呈現,以方便讀者閱讀。

 

jQuery對象轉成DOM對象

前面說了,jQuery對象不能使用DOM中的方法, 但如果你對jQuery對象所提供的方法不熟悉,或者jQuery沒有封裝你想要的方法,這時你不得不用一下DOM對象的時候,你該怎麼辦呢?

在這裏提供兩種方式來將一個jQuery對象轉換成DOM對象:

[ index ] 和 .get( index) ;

(1)jQuery對象是一個數組對象,可以通過 [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是否被選中了

 

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
發佈了54 篇原創文章 · 獲贊 7 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章