2011-08-22 81 views
0

我到處搜索過,但我沒找到解決這個特定問題的方法。AJAX IE找不到元素(getElementByID())

說得很簡單。我有一個JavaScript代碼和DIV頁面。我使用ajax在DIV中加載第二個頁面。加載的頁面有一個id爲「someid」的元素。

someid是<input type="hidden" id="someid" name="someid" value="sdasasdadad" />

然後,加載的頁面上我將其稱爲是「全球性」頁面,與這兩條線開始上定義一個函數:

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

alert(var); 

正常工作在Firefox但不在IE上。在IE上它不顯示警報,並且不會在這些行之後執行任何代碼。 我認爲問題是,當JavaScript代碼被評估,「someid」元素不存在,IE似乎不明白,現在它存在後,我使用AJAX加載頁面。我希望我讓自己清楚?

我需要這樣做,因爲這只是較大接口的一小部分。我沒有關於jQuery的知識,但它應該與這個JavaScript代碼一起工作,我猜!我怎樣才能做這項工作?

非常感謝!

+3

在您的AJAX請求將元素插入到DOM中之前,您的代碼很可能正在查找元素。沒有你的JavaScript代碼,很難確定。 –

+2

你真的使用'var'作爲變量名嗎? –

+0

你能改變這個var value = document.getElementById(「someid」)。 alert(value); – Baz1nga

回答

3

var用於聲明變量。這樣做var el = document.getEl...

這是假設你的代碼是完全一樣的生產代碼,否則請向我們展示真正的代碼

編輯:既然你說這「工程」在Firefox中,你的代碼是可能不一致,因爲Chrome中的var = 3會拋出一個SyntaxError,我想它也會在Firefox中這樣做。

+0

time = document.getElementById(「time」).value; 警報(時間); –

0

var word是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

像' Object'這樣的提醒有什麼用? – Baz1nga

+0

當然,這只是爲了絕對確定有一個值,然後檢索NULL或false。如果他的頁面有很多AJAX操作正在啓動,那麼節點可能會被刪除,插入等等......值得確保調用getElementById時正在檢索某些內容 – Daniel