首頁  >  文章  >  web前端  >  jquery物件和DOM物件的任意相互轉換_jquery

jquery物件和DOM物件的任意相互轉換_jquery

WBOY
WBOY原創
2016-05-16 15:14:401151瀏覽

什麼是jQuery物件?
---就是透過jQuery包裝DOM物件後產生的物件。 jQuery物件是jQuery獨有的,其可以使用jQuery裡的方法。
如:
$("#test").html() 意思是指:取得ID為test的元素內的html程式碼。其中html()是jQuery裡的方法
這段程式碼等同於用DOM實作程式碼:

document.getElementById("id").innerHTML; 

雖然jQuery物件是包裝DOM物件後產生的,但是jQuery無法使用DOM物件的任何方法,同理DOM物件也不能使用jQuery裡的方法.亂使用會報錯。例如:$("#test").innerHTML、document.getElementById("id").html()之類的寫法都是錯誤的。
還有一個要注意的是:用#id作為選擇符取得的是jQuery物件與document.getElementById("id")得到的DOM對象,這兩者並不等價。請參考如下所說的兩者間的轉換。
既然jQuery有差別但也有聯繫,那麼jQuery物件與DOM物件也可以互相轉換。在再兩者轉換前首先我們給一個約定:如果一個取得的是jQuery對象,那麼我們在變數前面加上$,如:var $variab = jQuery物件;如果取得的是DOM對象,則與習慣普通一樣:var variab = DOM物件;這麼約定只是便於講解與區別,實際使用中並不規定。

在討論jquery對象和DOM對象的相互轉換之前,先約定好定義變數的風格如果取得的是jquery對象,那麼在變數前面加上$,例如

var $varible = jquery物件;

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

var varible = DOM物件;

1.jquery物件轉成DOM物件:

jquery物件不能使用DOM中的方法,但如果對jquery對象所提供的方法不熟悉,或者沒有jquery想封裝的方法,不得不使用DOM對象,即【index】和get[index].

(1)jquery物件是一個陣列對象,可以透過【index】的方法得到對應的DOM物件。

jquery的程式碼如下

<body>
  <p>my</p>
  <p>my</p>
<script src="jquery-2.1.4.min.js"></script>
<script>
  var $cr = $("p");  //jquery对象
  var cr = $cr[1];  //dom对象
  var ct = $cr.get(0)  //第二种转换为DOM对象的方式
  cr.innerHTML = "you"  //检测是否转换成功,可以用DOM方法 输出结果为第二个my改成了you
  ct.innerHTML = 'fuck'  //输出结果第一个my改成了fuck
</script>
</body>

(2).DOM物件轉換為jquery物件:

對於一個DOM對象,只需要用$()把DOM對象給包裝起來,就可以獲得一個jquery對象了,方式為$(DOM對象)。

jquery程式碼如下:

<body>
  <p>my</p>
  <p>my</p>
<script src="jquery-2.1.4.min.js"></script>
<script>
  var cr = document.getElementsByTagName("p") //DOM对象
  var $cr = $(cr);   //jquery对象
  $cr.eq(0).("fuck"); //检测是否转换成功,可以用jquery方法 输出结果为第二个my改成了fuck
  $cr.eq(1).html("you"); //输出结果为my改成you
</script>
</body>

轉換後,可以任意使用jquery方法。

 透過上述方法,可以任意的相互轉換jquery物件和DOM物件。

最後再次強調,DOM物件才能使用DOM方法,jquery物件不能使用DOM中的方法,但jquery物件提供了一套更完善的工具來操作DOM。

希望大家會喜歡本文。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn