2016-03-19 37 views
0

私はjspmBundleSFXを使用しています。appendとappendChildは上書きされていますか?

私のディレクトリの1つに私のindex.htmlの1つで、コンソールに$("#sfsdfasfsdaf").appendと入力します。

私はfunction(){return x(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=s(this,a);b.appendChild(a)}})}を取得しています。Chromeはmain.jsに属しています。これはバンドルされており、uglified jsです。

$("#sfsdfasfsdaf") hapenningとは何ですか?

これは、存在するIDでも発生します$("#canvas").append私は同じ結果を得ます。 appendChild返信undefined

別のディレクトリのindex.htmlでは、すべてが正常に動作します。私はこの問題をどのように修正するのか分かりません。 index.htmlには、main.js uglifiedファイルが含まれています。

編集:$("#canvas");document.getElementById('canvas');に置き換えました。しかし、私はまだこの問題が起こっていた理由が分かりません。いくつかのスクリプトがjQueryを上書きするか、またはjQueryと競合しましたか?

答えて

1

jQueryオブジェクトを作成しています。これは空のjQueryオブジェクト(要素が存在しない場合、またはより正確にはセレクタに一致する要素がない場合)でも可能ですが、依然としてjQueryオブジェクトです。

このように、これにはまだ.appendなどのすべてのjQueryメソッドがあります。あなたがそれを呼び出すならば、何もしません。要素は、(例えば。document.getElementById('herpaderp')nullになります)が存在しない、とnull要素がappendChildような必要がありますメソッドを持っていない場合

バニラJavaScriptは、しかし、nullを与えます。

個人的に私はこれを一般的には良いことだと思っています。要素がほしいと言い、それが存在しないとすれば、より大きな問題があり、エラーがスローされる可能性がありますが、jQueryはうれしく続けます。

3

$(「#のsfsdfasfsdaf」)でも、何が理由が$(selector)は常に既存のかいないのマッチング要素があるかどうかにかかわらず、jQueryオブジェクトを返しますです

hapenningされる存在しません。そのオブジェクトには常に関数であるプロパティappendが含まれます。 jQueryメソッドappendChildが存在しないため、未定義と表示されます。それは、私は同じ結果を得る何をやろうとしアーレまたは何より高いレベルの問題、私は存在するのdivのIDに対して繰り返した場合、あなたが

+0

を持っているすべてでは明らかではない

越え。 jQueryはそのオブジェクトを見つけることができませんでしたか? –

+0

私はあなたが最初にやろうとしていることを理解していません。使用しているコンソールログに実用的なアプリケーションはありません – charlietfl

関連する問題