jQueryでDOMとjQueryオブジェクトの変換
StoryEditとは関係ないけど、並行で走らせている開発でGoogle mapsを使っているため、最近はJavascriptネタが多いかも。
ながいこと、jQueryよりはMootools派なのだが、仕様によってjQuery。
GoogleMapsのたとえばイベントハンドラなんかには、DOMオブジェクトを渡さないと行けないときがある。
//つくったカスタムコントロール(domobj)にイベントハンドラを追加 google.maps.event.addDomListener(domobj, 'click', function() { map.setCenter(latlng); });
こんなとき、jQueryのオブジェクトからDOMオブジェクトを作る方法。
逆は、すなわち,DOMからjQueryは$を使えば良いので割愛。
var jqueryobj = $(document.createElement('div')); /* いろいろやる */ google.maps.event.addDomListener(jqueryobj[0], 'click', function() { map.setCenter(latlng); });
と、jqueryオブジェクトの[0]がDOMオブジェクトになってる。こちらは、$$など、専用の関数を定義してみるのも一つの手ですね。
ちなみに、僕はデバッグ用の関数は、だいたいいつも次のように定義してます。
function D (msg) { console.log(msg); }
これはどの言語でも似たような関数定義するから、いいか。assertionとかもA()だったり。