晕,这个帖子又回来了,刚才一个和这个一摸一样的,写了一堆,帖子不见了,:)document.write(html);//显示select控件
原因在于你重写了页面
这句改成document.getElementById("div1").innerHTML=html//这里要注意的是浏览器在使用innerHTML时是会根据DOM关系把HTML重新组装的
再在外面再加个div

解决方案 »

  1.   

    xmlParser这个类我单独测试过是没有问题的。
     
    另外程序中开头2个注释,和最后1个注释也是我思考的思路
    如果按照这三个注释,只要三个中的任何一个做下改变,则问题就没有了(只能说是避免)
      

  2.   

    问题在于你的XML中有中文,所以没办法解析
    加个头文件就可以了
    <?xml version="1.0" encoding="GB2312"?>
      

  3.   

    xmlParser.prototype.getZones=function(){
    var doc=this.getDocXML();
    var zones=doc.getElementsByTagName("zone");
    var id,name;//这里少了声明zone,加上去问题也没有了
    var zonesArray=new Array();
    for(var i=0;i<zones.length;i++){
    zone=zones[i].attributes;
    id=zone[0].value;
    name=zone[1].value;
    zonesArray.push(id+":"+name);
    }
    return zonesArray.toString();
    }
    我用alert方法来一步一步跟踪, 发现zone没有声明,可我知道js中变量可以不用声明就可以拿来用的,
    如果这算解决问题的办法,那后2个注释的问题又怎么解释呢?
      

  4.   

    zone=zones[i].attributes;
    id=zone[0].value;
    name=zone[1].value;
    这几句也有问题
    改成下面的
    id=zones[i].getAttribute("id");
    name=zones[i].getAttribute("name");
      

  5.   

    回复hbhbhbhbhb1021
    问题不在于xml解析上(名字起得有点误导人了)我的附带xml文件中的头声明也和你一样
      

  6.   

    回复hbhbhbhbhb1021
     
    正如你所建议的那样,改了可以解决问题了;
    这里我有几个疑问,
    1: 保持原来的程序不变的基础上,加入zone的声明(原来我没加),问题也算解决了
    2: 将保持代码不变,将xmlParser单独拿出来测试,xml文件也是正常解析(zone不用声明也是可以的)
    3: 保持原来的程序不变的基础上,将
        var xmlparser=new xmlParser("viewModal.xml");
        //xmlparser.getZones();//增加这句无用的,则可正常工作
        var test=new testviewModal(xmlparser);
        test.initialize();
      将xmlparser.getZones()方法前的'//'去掉 
      问题似乎也能解决,这里很莫名其妙,
      
    4: 如果在1,2,3中找出一些关联的话,实在是没有办法将他们关联起来
      这问题太诡异了