JS问题求教,关于XML,急!
代码如下:
<script>
/*
* xmlParser class 解析xml文件
*/
function xmlParser(path){
this.path=path;
}
xmlParser.prototype.getDocXML=function(){
var xmlDoc = new ActiveXObject( "MSXML2.DOMDocument.3.0 ");
xmlDoc.load(this.path);
return xmlDoc;
}
//如果将该方法改成直接返回一个现成的字符串,如 "1:南京,2:苏州,3:扬州 "
//则不会出现三中的问题
xmlParser.prototype.getZones=function(){
var doc=this.getDocXML();
var zones=doc.getElementsByTagName( "zone ");
var id,name;
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();
}
/*
*testviewModal class 测试联同菜单
*/
function testviewModal(xmlparser){
this.xmlparser=xmlparser;
}
testviewModal.prototype.init_ZoneSELECT=function(){
var html= " <div> zone: <select id= 'zone '> </select> </div> ";//这里有点匪夷所思,如果替换成形如 "test "的字符串则没有问题
return html;
}
testviewModal.prototype.init_ZoneOPTION=function(){
alert(this.xmlparser.getZones());//为简化问题写成这样
}
testviewModal.prototype.initialize=function(){
var html=this.init_ZoneSELECT();
document.write(html);//显示select控件
this.init_ZoneOPTION();//弹出对话框
}
var xmlparser=new xmlParser( "viewModal.xml ");
//xmlparser.getZones();//增加这句无用的,则可正常工作
var test=new testviewModal(xmlparser);
test.initialize();
</script>
二:xml文件如下:
<?xml version= '1.0 ' encoding= 'gb2312 '?>
<view>
<zones>
<zone id= '1 ' name= '南京 ' />
<zone id= '2 ' name= '苏州 ' />
<zone id= '3 ' name= '扬州 ' />
</zones>
</view>
三:
我希望得到的结果是:出现一个select控件和一个弹出式对话框。而结果却不是这样
js语法上我觉得没有问题了,于是我从下面(程序中给了注释的地方)分析问题;
//这里有点匪夷所思,如果替换成形如 "test "的字符串则没有问题
//增加这句无用的,则可正常工作
而这样的分析很容易导致我往IE本身的缺陷上去思考
所以我觉得这不是一个简单的问题, 请js高手帮帮忙!!!!
------解决方案--------------------晕,这个帖子又回来了,刚才一个和这个一摸一样的,写了一堆,帖子不见了,:)
document.write(html);//显示select控件
原因在于你重写了页面
这句改成document.getElementById( "div1 ").innerHTML=html//这里要注意的是浏览器在使用innerHTML时是会根据DOM关系把HTML重新组装的
再在外面再加个div