2011-08-22 78 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