2010-11-08

以jQuery語法取得傳統的DOM物件

大家都知道jQuery使用$('#MyId')這樣的語法去取得網頁中的某個物件(DOM),但這樣取得的物件,與不使用Framework所取得的物件是不同的:
return ($('#MyID')==document.getElementById('MyID')); 
//FALSE

$('#MyID')取得的是jQuery專用的Element/Object,但有些場合還是需要傳統方式取到的Element: document.getElementById('MyID');以筆者來說就是在使用 Google Map API v3的時候,必須使用後者的傳統Javascript語法所回傳的物件,才能成功呼叫某個API function,在慣用jQuery輔助的程式中,突然夾雜了這個語法有點唐突,也不太一致。

不過,實務上甚少有人提及,因此花了一些時間搜尋及測試,證實以下的語法可以用jQuery語法達到相同的「傳統」效果:
$('#MyId').get(0);
//或是
$('#MyId')[0];
//=document.getElementById('MyID')
這樣有助於解決一些API或舊程式的問題,但又能用jQuery一致的語法撰寫程式,撰寫時會較為方便;不過要注意的是,若有變數拿來此物件來使用,需要特別留意屬性、語法問題,也要記得它畢竟非jQuery的物件。

沒有留言:

張貼留言

引用 Topshelf 無法進行偵錯的經驗

Topshelf  是一個可以簡化撰寫 Windows Service 的套件,引用之後,我們只要當作撰寫一般 Console 的應用程式就可以。 只是近來撰寫上遇到無法進行Debug的狀況,在Visual Studio一進行偵錯可以看到Console 程式被執行,並顯示...