首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Ajax >

使用getElementsByTagName("state"),然后取length取值总是返回0,该怎么解决

2012-03-20 
使用getElementsByTagName(state),然后取length取值总是返回0郁闷部分代码HTML codefunction listAllSta

使用getElementsByTagName("state"),然后取length取值总是返回0
郁闷 
部分代码
 

HTML code
function listAllStates(){   var xmlDoc=xmlHttp.responseXML;  var allStates=xmlDoc.getElementsByTagName("state");  outputList("All States in Document",allStates);}function outputList(title,states){   var out=title;  var currentState=null;  for(var i=0;i<states.length;i++)  {    currentState=states[i];    out=out+"\n-"+currentState.childNodes[0].nodeValue;  }alert(out);}


[解决办法]
下面的代码已经测试过。It works.

JScript code
function listAllStates(){ var xmlDoc;var xmlString = '<states><state>wei</state></states>';    // Mozilla and Netscape browsers    if (document.implementation.createDocument) {        var parser = new DOMParser()        xmlDoc = parser.parseFromString(xmlString, "application/xml")    // MSIE    } else if (window.ActiveXObject) {        xmlDoc = new ActiveXObject("Microsoft.XMLDOM")        xmlDoc.async="false"        xmlDoc.loadXML(xmlString)    }     var x = xmlDoc.getElementsByTagName('state');  alert (xmlDoc);  alert (x.length);}  listAllStates();
[解决办法]
你保证你的远程XML读取正确么?
还有是否可以考虑使用XPATH来解决
也就是XDOC.selectNodes("//state").length;
[解决办法]
JScript code
function handleStateChange(){  if(xmlHttp.readyState==4){//如果你直接拖进浏览器的话正确执行时返回的状态为0,要想返回200状态需要服务器支持//所以要加上xmlHttp.status==0的判断        if(xmlHttp.status==200||xmlHttp.status==0){              if(requestType=="north"){                 listNothStates();              }              else if(requestType=="all"){                 listAllStates();              }         }   }} 

热点排行