日期:2014-05-16  浏览次数:20684 次

null为空或不是对象 - Web 开发 / Ajax
if(IndexXMLData.readyState==4)
{
var XMLData=IndexXMLData.responseXML;
  var Nodes=XMLData.selectNodes("QQW/Item");
  for(var i=1;i<=Nodes.length;i++)
  {
  var sResult="";
sResult += "<div id='LY_Title"+i+"' class='MemberTitle'>"+Nodes[i].selectSingleNode("Title").text+"("+Nodes[i].selectSingleNode("RegDate").text+")</div><div id='LY_Meg"+i+"' class='MemberNote' title='"+Nodes[i].selectSingleNode("Message").text+"'>"+Nodes[i].selectSingleNode("Message").text+"</div>";  
}
document.getElementById("MsgList_Hidden").innerHTML=sResult;
  }

这个是ajax的回调函数内的内容,加粗的部分老是提示:null为空或不是对象,请指点!!

------解决方案--------------------
没有此节点 alert下 用xmldoc.reponseXML.documentElement;再foreach出所有的节点
------解决方案--------------------
可能出现null的似乎只有Nodes[i].selectSingleNode
debug的时候把这些添到监控表达式里看看就知道那个节点没找到了
------解决方案--------------------
如果偶尔出错,可以加try{}catch(e){}来规避异常,如果次次出错,就说明你的代码有问题了,需要调试解决。。。

你这代码:
for(var i=1;i<=Nodes.length;i++)这里有问题。计数是从0开始的,
应该是
for(var i=0;i<Nodes.length;i++)