我有这样的代码行:(JS)
numOfprocess = parseInt(xmlDoc.getElementsByTagName('process_count')[0].childNodes[0].nodeValue)
for (i = 1; i <= numOfProcess; i++)
{
processStatus = xmlDoc.getElementsByTagName('proccess' + i)[0];
if(processStatus.childNodes[0].nodeValue == false)
{...}
}
每次我使用此语法时,都会出现错误“需要对象”,而在 Firefox 中一切正常。 (...只是为了解释)
我尝试像这样进行一些调试:
alert(processStatus.childNodes[0].nodeValue)
结果是 0,所以 var 没问题。 (也曾在 ff 工作过...)
XML:
<process_count>2</process_count>
<Application_Status>
<proccess2>1</proccess2>
</Application_Status>
另一件事是,对于 i=1 来说可以,但对于 i=2 则不行。
谢谢。
最佳答案
索引从0开始,所以如果你有三个项目,它们对应的索引是0
、1
和2
,所以你需要循环:
for (i = 1; i < numOfProcess; i++)
而不是:
for (i = 0; i <= numOfProcess; i++)
编辑:
您不需要 for 循环来访问数据,您可以通过以下方式轻松访问所需的值:
var processId = xmlDoc.getElementsByTagName('process_count')[0].childNodes[0].nodeValue;
var processStatus = xmlDoc.getElementsByTagName('process'+processId)[0].childNodes[0].nodeValue;
但是,我建议重新考虑您的 xml 模式,因为您不需要多个进程状态,为什么不做一些简单的事情,例如:
<application>
<process id="2" status="1" />
</application>
关于php - IE 中的语法错误? -ajax 和 Js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3656950/