什麼是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。
希望大家會喜歡本文。