<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好長時間,可是還是沒搞懂,求大佬解釋一波,我註釋中提到的問題。
滿天的星座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'>";
標籤,