2011-08-22 12 views
0

私はどこでも検索できましたが、この特定の問題の解決策が見つかりませんでした。AJAX IEが要素を見つけられません(getElementByID())

簡単に入力してください。私はいくつかのJavaScriptコードとDIVを持つページを持っています。私はajaxを使用して、そのDIVの内部に2番目のページを読み込みます。読み込まれたページには、idが "someid"の要素が1つあります。

var=document.getElementById("someid").value; 

alert(var); 

Firefoxの上ではなく、正常に動作します:

someidがロードされたページに、私はこの2行で始まる「グローバル」ページで定義された関数を呼び出し、その後、<input type="hidden" id="someid" name="someid" value="sdasasdadad" />

ですIE上でIE上では警告を表示せず、これらの行の後にコードを実行しません。 問題は、JavaScriptコードが評価されたときに、「someid」要素がまだ存在しなかったこととIEが理解できないように見えて、ajaxを使用してページをロードした後に存在することを理解しているようです。私は自分自身を明確にしたいと思いますか?

これは大きなインターフェースのほんの一部なので、このようにする必要があります。 jqueryについての知識はありませんが、このjavascriptコードでも動作するはずです。どのように私はこの作品を作ることができますか?

ありがとうございます!

+3

あなたのAJAXリクエストが要素をDOMに挿入する前に、あなたのコードが要素を探している可能性があります。 JavaScriptコードを使用しないと、判断が難しくなります。 –

+2

実際に変数名として 'var'を使用していますか? –

+0

このvar値を変更できますか?document.getElementById( "someid")。value; アラート(値)。 – Baz1nga

答えて

3

varは、変数を宣言するために使用されます。あなたはそれFirefoxで「作品」、あなたのコードがあるので:これは、そうでない場合は、私たちに実際のコードを表示してください

EDIT、あなたのコードは、本番のコードと全く同じであると仮定している

var el = document.getEl...ような何かを行いますChromeで var = 3SyntaxErrorを投げるので、おそらく矛盾しています。これはFirefoxでも同様です。

+0

time = document.getElementById( "time")。value; アラート(時間);もちろん –

0

varはJavascriptでキーワードです。ここでは、違法な識別子としてキーワードを使用しようとしています。 var以外の名前を使用すると、myVarのように問題が解決されます。

var myVar =document.getElementById("someid").value; 
alert(myVar); 
0

そのようにしてください。 VARはjavascriptの

var someVar = document.getElementById("someid").value; 

alert(someVar); 
+0

です。私は説明のためにvarを入れました。ごめんなさい!変数の実際の名前は時間です。 –

0

私は要素を警告することによって、これをデバッグしようとするだろうに予約キーワードとその値です:私はあなたがいないと確信している

var element = document.getElementById("someid"); 

alert(element); 

var valueOfElement = element.value; 

alert(valueOfElement); 

しかし、あなたがすることはできませんvarを変数名として使用すると、Javascriptキーワードになります。

+0

オブジェクト」のようなアラートの使用は何ですか? – Baz1nga

+0

確かに、それはNULLまたはfalse以外の値が取得されていることが絶対に確実であっただけです。彼のページに多くのAJAXアクションがある場合、ノードは削除されたり、挿入されたりする可能性があります。getElementByIdを呼び出すときに何かが取得されていることを確認する価値があります – Daniel

関連する問題