我有这样的代码行:(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)
{...}
}
每次我使用这种语法都会出现“obejct required”错误,而在Firefox eveything还可以。 (......只是为了解释)
我尝试做这样的调试: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 :(得分:1)
索引从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>