<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>
Le code ci-dessus est un exemple de code dans W3CSchool que j'ai vu lorsque j'apprenais AJAX avec w3cschool. Le but est d'afficher le fichier XML sous forme de tableau HTML. Cependant, j'ai toujours eu l'impression que quelque chose n'allait pas, alors je suis allé sur Google. depuis longtemps, mais je ne comprends toujours pas, merci de m'expliquer les problèmes évoqués dans mes commentaires.
Document fait référence au modèle de document, documentElement est l'élément
x=xmlhttp.responseXML.documentElement.getElementsByTagName("CD");//Que signifie cette ligne ? ? Que signifie le CD ? ? Ce que j'ai vu auparavant est un document. Que signifie ce documentElement ? ?
fait référence à l'obtention de la collection nommée "CD" dans le XML renvoyéx=xmlhttp.responseXML.documentElement.getElementsByTagName("CD");//这行是什么意思??其中的CD又是什么意思??之前看到的都是document,这个documentElement是什么意思??
指获取返回的XML中的标签名为"CD"的集合
fait référence au contenu du premier élément enfant sous la balise TITLE🎜txt=txt + "" + xx[0].firstChild.nodeValue + "";//这行什么意思???
txt=txt + "" + xx[0].firstChild.nodeValue + "";//Que signifie cette ligne ? ? ?
xx=x[i].getElementsByTagName("TITLE");
xmlhttp
est l'objet renvoyé par votre ajax. De même, lesresponseXML
etdocumentElement
suivants sont les méthodes correspondantes de l'objet précédent.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'>";
getElementsByTagName
suivant est analogue à la recherche de tout le contenu dont latag
estCD
. Si vous pouvez voir le fichier XML renvoyé par la requête ajax, vous pouvez trouver un code tel que<CD></CD>
au milieu. 🎜🎜 🎜🎜txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
La fonction consiste à obtenirtitle
La valeur du premier nœud est insérée dans la balisetd
🎜🎜 🎜🎜txt=txt + "</table>"
Bien sûr, en ajouter une ne le complétera pas automatiquement. Il s'agit d'une balise de fermeture, commençant partxt="<table border=. Balise ' 1'>";
, 🎜🎜 🎜