0

私はprototype/jqueryの初心者です。これをChromeコンソールで実行しようとすると、「contains_filter_select」というdivのあるページで次のようになります。

>> $("contains_filter_select" )
<div id=​"contains_filter_select">​…​&lt;/div>​

しかし、それはどういうわけかオブジェクトではないように見えますか?

>> $("contains_filter_select").text("abc")
TypeError: Object #<HTMLDivElement> has no method 'text'

 $("#contains_filter_select")
 null

私はここで些細なことを見逃しているような気がします、誰かが私を正しい方向に向けることができますか?

4

5 に答える 5

5

あなたが言った:

>> $("contains_filter_select").text("abc")

TypeError: Object #<HTMLDivElement> has no method 'text'

これは、jQueryをまったく使用していないが、他のライブラリを使用していることを示しています。シンボルを使用するライブラリはいくつかあります$:jQuery、Prototype、およびMooTools(少なくとも)。PrototypeとMooToolsの両方が機能する方法$("contains_filter_select")で、を使用すると、実際のdivオブジェクトへの参照が返されます。jQueryは異なります。jQueryを使用すると、一致する要素のセットのラッパーが返されます(また、文字列は#、要素IDの前にCSSスタイルのセレクターがあり、PrototypeやMooToolsは単なるID値です)。jQueryを使用すると、セレクターが機能しなくても、発生しているエラーは発生しません。textPrototypeまたはMooToolsを使用すると、どちらも要素にメソッドを追加しないので、きっとそうなるでしょう。

したがって、答えは次のとおりです。そのページでjQueryを使用しているとはまったく思わない。スクリプトタグを再確認してください。(FWIW、人気のあるオンラインツールjsFiddleを使用している場合、左側のドロップダウンを変更しないと、デフォルトでMooToolsになります。)

于 2012-06-05T14:26:18.420 に答える
1

セレクターのIDにハッシュ記号(#)を使用する

$("#contains_filter_select" )
于 2012-06-05T14:25:12.480 に答える
0

IDを$("#contains_filter_select" )取得するためです。<div>一度それを行うと動作するはずです。

編集:ここを見ると:http://jsfiddle.net/mRBJq/正常に動作します。

于 2012-06-05T14:22:46.663 に答える
0

IDのセレクターには、接頭辞「#」を付ける必要があります。

$("#contains_filter_select")いいえ$("contains_filter_select")

于 2012-06-05T14:23:09.930 に答える
0

ページにjQueryを含めた場合、$Idによって要素を取得し、jQueryとは関係のない関数で上書きされています。これを使って:

(function($){
    // Now $ refers to jQuery

    $("#contains_filter_select").text("abc");

})(jQuery);

JSFiddle

jQueryを含めていない場合は、TJCrowderの回答を参照してください。

于 2012-06-05T14:25:37.220 に答える