代码区一
var drp2 = document.getElementById("ctl00$content$city"); //使用了母版,获取一个DropDownList对象
for(var i = 0;i <=drp2.options.length -1;i++){
drp2.remove(i);//删除该DropDownList的所有options
}
代码区二
var result=" <NewDataSet> <Table> <city>潮洲 </city> </Table> <Table> <city>北京 </city> </Table> <Table> <city>上海 </city> </Table> </NewDataSet>";
oDoc.loadXML(result);
items = oDoc.selectNodes("//NewDataSet/Table");
for (var item = items.nextNode(); item; item = items.nextNode()){
var node = item.selectSingleNode("//city");
var city = node.nodeTypedValue;
var newOption = document.createElement("OPTION");
newOption.text = city;
newOption.value = city;
drp2.options.add(newOption);
}
观看以上代码,两代码区都在同一个文件中
问题一:我的DropDownList ctl00$content$city的值为三个潮州而不是潮州、北京、上海,为什么?
问题二:当result的值改动之后(页面没有刷新),例如第二层改为 <Table> <city>广东 </city> </Table> <Table> <city>青岛 </city> </Table>我的DropDownList ctl00$content$city并没有像预期的那样删掉之前的三个潮州再加上广东和青岛,而是三个潮州再加两个广东,为什么?
------解决方案--------------------------------------------------------
确实你楼主xpath 问题
参考修改
- JScript code
var result=" <NewDataSet> <Table> <city>潮洲 </city> </Table> <Table> <city>北京 </city> </Table> <Table> <city>上海 </city> </Table> </NewDataSet>"; oDoc=createDocument(); oDoc.loadXML(result); items = oDoc.selectNodes("//NewDataSet/Table"); for (var item = items.nextNode(); item; item = items.nextNode()){ var node = item.selectSingleNode[color=#FF0000]("city"[/color]); var city = node.nodeTypedValue; var newOption = document.createElement("OPTION"); alert(city);
------解决方案--------------------------------------------------------
var node = item.selectSingleNode("//city");
修改为
var node = item.selectSingleNode("city");
即可.
------解决方案--------------------------------------------------------
for(var i = 0;i <=drp2.options.length -1;i++){
drp2.remove(i);//删除该DropDownList的所有options
}
可以简化为
drp2.innerHTML ="";
第二,建议你用 alert 调试一下 items.nextNode(); 取到的是什么值
另,代码可优化为
for (var i = 0; i<items.childNodes.length; i++)
{
var city = items[i]["city"].innerText;
drp2.options.add(new Option(city,city));
}