function GetSpec() {
            var temp;
            var index = document.getElementById("Select1").selectedIndex;
            var SelectText = document.getElementById("Select1").options[index].text;
            if (window.XMLHttpRequest) {
                xmlhttp = new XMLHttpRequest();
            }
            else {
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            xmlhttp.open("GET", "XMLFile.xml", false);
            xmlhttp.send();
            xmlDoc = xmlhttp.responseXML;
            var r = xmlDoc.getElementsByTagName("academe");
            for (var i = 0; i < r.length; i++) {
                if (r[i].getAttribute("name") == SelectText) {
                    temp = i;
                    break;
                }
            }  
            var childlist = r[temp].childNodes;
            for (var j = 0; j < childlist.length; j++){
                var t = childlist[j].nodeValue;
                var varItem = new Option(t, (j + 1).toString());
                document.getElementById("Select2").options.add(varItem);
           }
            alert("aaa");
        }xml文件如下:
<?xml version="1.0" encoding="utf-8" ?>
<Root>
  <academe name="水产学院">
    <spec>aa</spec>
    <spec>bb</spec>
    <spec>cc</spec>
  </academe>
  <academe name="农学院">
    <spec>aa</spec>
    <spec>dd</spec>
  </academe>
  <academe name="工程学院">
    <spec>aa</spec>
  </academe>
  <academe name="信息学院">
    <spec>aa</spec>
    <spec>bb</spec>
    <spec>cc</spec>
    <spec>dd</spec>
    <spec>ee</spec>
  </academe>
</Root>
当我在id为select1的控件中选择水产学院时,另一个select控件的值全部为NULL,这是为什么?

解决方案 »

  1.   

    var childlist = r[temp].getElementsByTagName("spec")//========不要用childNodes属性,ff下空白节点也算一个子节点
      for (var j = 0; j < childlist.length; j++){
      var t = childlist[j].firstChild.nodeValue;//============
      var varItem = new Option(t, (j + 1).toString());
      document.getElementById("Select2").options.add(varItem);
      }