2012-03-27 9 views
1

JavaScriptモジュールが、要素が存在する場合でも、クラス名が$('.classname')の特定のDOM要素を見つけることができません。 $.find('.classname').lengthとして戻っ1.

ウェブサイトは、他のJavaScriptモジュールが含まれてい

$('.classname').length 0を返し、。

これはなぜ起こっているのですか?

私のjQueryバージョンは1.7.1です。

これを再生する 1-にアクセスavc.com
2-コンソールを開きます。
3-コンソールに次のコードを貼り付けます。

var head = document.getElementsByTagName("head")[0]; 
var script = document.createElement("script"); 
script.type = "text/javascript"; 
script.src = "//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"; 
script.async = true; 
head.appendChild(script); 

、4-
$('.pkg').length$.find('.pkg').lengthを試してみてください。

はここhttp://i.imgur.com/4UDHz.png

つ以上の点から、スクリーンショットを探すあなたには、いくつかの他のウェブサイトでこれをしようとした場合、それは正常に動作します。

+1

を使用してみてください$ .noConflict()を呼び出して戻って他のライブラリに $の制御を返すことができますする:alert(jQuery == $)あなたに本当の価値を与えるか? – aquinas

+0

これは動作しますhttp://jsfiddle.net/GaSXP/ –

+0

@SheikhHeeraあなたは試してみることができます、私はあなたの質問を更新しました – Jeevan

答えて

2

他のJavaScriptモジュールと競合することがあります。 noconflict

多くのJavaScriptライブラリは、関数や変数名、jQueryの場合と同様にちょうど として$を使用してjQueryのに見て。 jQueryの場合、$はjQueryのエイリアスなので、 $を使わずにすべての機能を利用できます。我々は jQueryのと一緒に別のJavaScriptライブラリを使用する必要がある場合、我々は

あなたのページで

jQuery('.classname').length 
+0

それは動作しません。私はすでにnoconflictを使用しています。私の質問は、$( '。classname')の長さが0で、同じ$ .find( '。classname')の長さが1を返す理由です。 – Jeevan

+0

jsfiddleで問題を再現できますか? – Rondel

+0

私はすべてのウェブサイトにJavaScriptを注入する拡張機能に取り組んでいます。私はavc.comでこれが起こっていることに気付きました。ここでは何が起こるのスクリーンショットです - http://i.imgur.com/4UDHz.png これを再生する avc.com コンソールを開きます。 次のコードを貼り付けます。 'var head = document.getElementsByTagName( "head")[0]; var script = document.createElement( "script"); script.type = "text/javascript"; script.src = "//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"; script.async = true; head.appendChild(スクリプト); ' 次に、 $( '。pkg')を試してください。 $ .find( '。pkg')。length – Jeevan

関連する問題