这是我第一次以任何方式使用ajax,所以请耐心等待。
在我的程序中,我有一个下拉框,可根据所选的状态动态提取邮政编码,县和城市。到目前为止,县的工作正常,但邮政编码和城市只显示我的xml表上的第一条记录。
xml看起来像这样:
<states>
<counties>
<county>
<countyid>id#1</countyid>
<countyname>nassau</countyname>
</county>
</counties>
<zipcodes>
<zip>10109</zip>
</zipcodes>
<cities>
<city>New York</city>
<cities>
</states>
现在,循环遍历县部分的javascript如下所示:
target1.options[0] = new Option("Select County", "null");
for (var i = 0; i < xmlCounties.length; i++) {
target1.options[target1.options.length] = new Option(xmlCounties[i].childNodes[1].firstChild.nodeValue, xmlCounties[i].childNodes[0].firstChild.nodeValue, false, (matched == xmlCounties[i].childNodes[0].firstChild.nodeValue));
}
这很好用,但对于城市和邮政编码,它们都不是,它们看起来都像这样,与上面的例子相同:
target2.options[0] = new Option("Select Zipcode", "null");
for (var i = 0; i < xmlZips.length; i++) {target2.options[target2.options.length] = new Option(xmlZips[i].childNodes[0].firstChild.nodeValue, xmlZips[i].childNodes[0].firstChild.nodeValue, false, (matched == xmlZips[i].childNodes[0].firstChild.nodeValue));
}
它们都从xml中提取数据,但只从第一条记录中提取数据。关于如何解决这个问题的任何想法?谢谢!
答案 0 :(得分:0)
县是2级深度..拉链和城市只有一层深。这就是原因。试试这个
target2.options[0] = new Option("Select Zipcode", "null");
for (var i = 0; i < xmlZips.length; i++) {target2.options[target2.options.length] = new Option(xmlZips[i].childNodes[0].nodeValue, xmlZips[i].childNodes[0].nodeValue, false, (matched == xmlZips[i].childNodes[0].nodeValue));
}