Heim > Fragen und Antworten > Hauptteil
<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>
Der obige Code ist ein Beispielcode in W3CSchool, den ich gesehen habe, als ich AJAX von w3cschool gelernt habe. Der Zweck besteht darin, die XML-Datei als HTML-Tabelle anzuzeigen. Ich hatte jedoch immer das Gefühl, dass etwas nicht stimmte, also ging ich zu Google Es ist schon lange her, aber ich verstehe es immer noch nicht. Bitte erläutern Sie mir die in meinen Kommentaren genannten Probleme.
滿天的星座2017-05-19 10:42:33
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下的第一个子元素的内容
漂亮男人2017-05-19 10:42:33
xmlhttp
是你的ajax返回的对象,同样的,后面的responseXML
,documentElement
就是前一个对象下对应的方法。
而后面的getElementsByTagName
类比于找到所有tag
为CD
的内容。如果你能看到ajax请求回来的xml的话,你就能在中间找到<CD></CD>
这样的代码。
txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
作用是拿到 title
下的第一个节点的值插入到td
标签里面
txt=txt + "</table>"
当然不是加一个就自动补全,这个是闭合标签,前面起始的txt="<table border='1'>";
标签,