? ? ? ? ?自學(xué)canvas的時(shí)候督赤,很簡(jiǎn)單的練習(xí)代碼都執(zhí)行不出來(lái),原因是我用jQuery獲取的對(duì)象,可以輸出到j(luò)Query對(duì)象蚜点,但是輸出$('#canvas').getContext('2d')的時(shí)候,發(fā)現(xiàn)輸出結(jié)果是undefined拌阴;于是上網(wǎng)百度原因绍绘,這才知道還有dom對(duì)象和jQuery對(duì)象的區(qū)別,就了解了一下迟赃。
DOM對(duì)象陪拘,即是我們用傳統(tǒng)的方法(javascript)獲得的對(duì)象,
jQuery對(duì)象即是用jQuery類庫(kù)的選擇器獲得的對(duì)象;
更直觀一點(diǎn):
var domObj = document.getElementById("id"); //DOM對(duì)象
var $obj = $("#id"); //jQuery對(duì)象;
jQuery對(duì)象就是通過(guò)jQuery包裝DOM對(duì)象后產(chǎn)生的對(duì)象纤壁,它是jQuery獨(dú)有的左刽。如果一個(gè)對(duì)象是jQuery對(duì)象,那么就可以使用jQuery里的方法酌媒。
jQuery對(duì)象是不可以使用dom對(duì)象的方法的欠痴,這就是問(wèn)題所在!
例如$("#id").style.color ;在語(yǔ)法上是不對(duì)的秒咨,只能寫(xiě)成例如$("#id").attr('color');(jQuery對(duì)象使用jQuery特有的方法)
jQuery對(duì)象的實(shí)例喇辽,根本就沒(méi)有style這個(gè)屬性。jQuery對(duì)象和DOM對(duì)象是兩種不同的對(duì)象雨席,它們的內(nèi)部結(jié)構(gòu)也是不同的菩咨。當(dāng)你把jQuery對(duì)象當(dāng)做DOM對(duì)象使用時(shí),你調(diào)用該對(duì)象的任何屬性和方法,都有可能觸發(fā)一個(gè)屬性或方法未定義的異常抽米,因?yàn)檫@個(gè)屬性或方法確實(shí)不存在特占。
dom對(duì)象和jQuery對(duì)象的相互轉(zhuǎn)換:
1) ?jQuery對(duì)象 -->? dom對(duì)象:
var $cr=$("#cr"); //jquery對(duì)象
var cr = $cr[0]; //dom對(duì)象 (或者可以寫(xiě)成 var cr=$cr.get(0);)
2)? dom對(duì)象 -->? jQuery對(duì)象:
var can = document.getElementById('can'); //dom對(duì)象
var $can = $(can);//jQuery對(duì)象
回到最初的問(wèn)題,getContext方法是JavaScript ? dom對(duì)象特有的方法缨硝,所以把jQuery對(duì)象轉(zhuǎn)化成dom對(duì)象程序就可以正常執(zhí)行了