javascript - 学习AJAX中出现的发现的一点问题
ringa_lee
ringa_lee 2017-05-19 10:40:33
0
2
596
<html>
<head>
<script type="text/javascript">
var xmlhttp;

function loadXMLDoc(url)
{
xmlhttp=null;
if (window.XMLHttpRequest)
  {// code for IE7, Firefox, Mozilla, etc.
  xmlhttp=new XMLHttpRequest();
  }
else if (window.ActiveXObject)
  {// code for IE5, IE6
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
if (xmlhttp!=null)
  {
  xmlhttp.onreadystatechange=onResponse;
  xmlhttp.open("GET",url,true);
  xmlhttp.send(null);
  }
else
  {
  alert("Your browser does not support XMLHTTP.");
  }
}

function onResponse()
{
if(xmlhttp.readyState!=4) return;
if(xmlhttp.status!=200)
  {
  alert("Problem retrieving XML data");
  return;
  }

txt="<table border='1'>";
x=xmlhttp.responseXML.documentElement.getElementsByTagName("CD");//这行是什么意思??其中的CD又是什么意思??之前看到的都是document,这个documentElement是什么意思??
for (i=0;i<x.length;i++)
  {
  txt=txt + "<tr>";
  xx=x[i].getElementsByTagName("TITLE");
    {
    try
      {
      txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";//这行什么意思???
      }
    catch (er)
      {
      txt=txt + "<td> </td>";
      }
    }
  xx=x[i].getElementsByTagName("ARTIST");
    {
    try
      {
      txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
      }
    catch (er)
      {
      txt=txt + "<td> </td>";
      }
    }
  txt=txt + "</tr>";
  }
txt=txt + "</table>";//这标签只要加一个就能在解析时自动补全吗??
document.getElementById('copy').innerHTML=txt;
}

</script>
</head>

<body>
<p id="copy">
<button onclick="loadXMLDoc('/example/xmle/cd_catalog.xml')">Get CD info</button>
</p>
</body>
</html>

上面是代码是我从w3cschool中学习AJAX时,看到的W3CSchool中的一段示例代码,目的是为了把XML文件显示为HTML表格,但是个人总觉得哪里有点不对劲,于是goole好长时间,可是还是没弄懂,求大佬解释一波,我注释中提到的问题。

ringa_lee
ringa_lee

ringa_lee

全部回复(2)
滿天的星座

document指文档模型,documentElement是元素

x=xmlhttp.responseXML.documentElement.getElementsByTagName("CD");//这行是什么意思??其中的CD又是什么意思??之前看到的都是document,这个documentElement是什么意思??指获取返回的XML中的标签名为"CD"的集合

txt=txt + "" + xx[0].firstChild.nodeValue + "";//这行什么意思???
xx=x[i].getElementsByTagName("TITLE");
指标签TITLE下的第一个子元素的内容

漂亮男人
  1. xmlhttp是你的ajax返回的对象,同样的,后面的responseXML,documentElement就是前一个对象下对应的方法。

  2. 而后面的getElementsByTagName类比于找到所有tagCD的内容。如果你能看到ajax请求回来的xml的话,你就能在中间找到<CD></CD>这样的代码。

  3. txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";作用是拿到 title 下的第一个节点的值插入到td标签里面

  4. txt=txt + "</table>"当然不是加一个就自动补全,这个是闭合标签,前面起始的txt="<table border='1'>";标签,

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!