2011-12-19 12 views
2

私はidがbilling:postcodeの入力要素を持っています。プロトタイプ$()セレクタはthis ticketで説明されているようにこの要素を選択できません。getElementByIdで要素を取得し、それを拡張してPrototypeメソッドを使用する方法は?

私が見つけたのは、jQueryで同じ問題が発生しているthis解決方法です。 Prototypeで動かすことができません。私が試した:

var element = document.getElementById('billing:postcode'); 
Element.extend(element); 
element.invoke(...); 

と:

var element = document.getElementById('billing:postcode'); 
$(element).invoke(...); 

両方を動作しません:Uncaught TypeError: Object #<HTMLInputElement> has no method 'invoke'

を私は私はこのようなCSSセレクタで要素を取得することができます知っている:

$$('#billing\\:postcode') 

しかしgetElementByIdを使いたい

+0

なぜ「本当の質問ではない」近い投票ですか?問題はかなり明確です。 –

答えて

3

あなたElement.extend(element);の作品は、最も一般的な方法は、ちょうど$()を通してそれを渡すことですが:

var extended = $(document.getElementById('billing:postcode')); 

しかし、単一の要素があなたに実行している本当の問題であるプロトタイプinvoke方法を、持っていないことに注意してください。 :-) invokeは、Enumerableの一部であり、個々の要素ではなく、要素のリストにのみ適用されます。  —その目的は、リスト内の各要素で特定の関数を呼び出すことです。 invokeを呼び出すのではなく、直接呼び出しようとしている関数を呼び出すだけです。

関連する問題