最近通過ocx做了一個視頻插件,然后將插件放到html中(想知道的可以看一下)
因為我要操作這個插件,要播放,停止等,所以我需要獲取這個元素,不出意外的,我就用jquery來獲取,然后根本無法執行,然后用document來獲取,正常執行,具體的如下所示
//正常執行 var obj = document.getElementById("player00"); obj.testhelloworld(); //無法執行 var playobj = $('#player00'); playobj.testhelloworld();
然后我就在想,這兩者有什么區別呢?然后搜索了如下結論
jquery獲取的html元素是jquery對象,可以執行jquery的方法,而document獲取的是dom對象,執行的是dom的方法
頓時釋然,我此前一直認為兩個是等價的,並為追究為什么dom的方法為什么不能在jquery來執行,現在想想,完全釋然了。
既然這樣,那么兩者之間怎么互相轉化呢?畢竟所得到的對象的內容是一樣的。
jQuery對象轉成DOM對象:
兩種轉換方式將一個jQuery對象轉換成DOM對象:[index]和.get(index);
(1)jQuery對象是一個數據對象,可以通過[index]的方法,來得到相應的DOM對象。
如:var $v =$("#v") ; //jQuery對象
var v=$v[0]; //DOM對象
alert(v.checked) //檢測這個checkbox是否被選中
(2)jQuery本身提供,通過.get(index)方法,得到相應的DOM對象
如:var $v=$("#v"); //jQuery對象
var v=$v.get(0); //DOM對象
alert(v.checked) //檢測這個checkbox是否被選中
DOM對象轉成jQuery對象:
對於已經是一個DOM對象,只需要用$()把DOM對象包裝起來,就可以獲得一個jQuery對象了。$(DOM對象)
如:var v=document.getElementById("v"); //DOM對象
var $v=$(v); //jQuery對象
轉換后,就可以任意使用jQuery的方法了。
通過以上方法,可以任意的相互轉換jQuery對象和DOM對象。需要再強調注意的是:DOM對象才能使用DOM中的方法,jQuery對象是不可以用DOM中的方法。
