AJAX 应用程序

创建于 2024-12-03 / 22
字体: [默认] [大] [更大]

本章演示使用 XML、HTTP、DOM 以及 JavaScript 的 HTML 应用程序。


使用的 XML 文档

在本章中,我们将使用名为 "cd_catalog.xml" 的 XML 文件。


在 HTML 表格中显示 XML 数据

本例遍历每个 <CD> 元素,然后在 HTML 表格中显示 <ARTIST> 和 <TITLE> 元素的值:

实例

<html>
<head>
<style>
table, th, td {
  border: 1px solid black;
  border-collapse: collapse;
}

th, td {
  padding: 5px;
}
</style>
</head>
<body>

<table id="demo"></table>

<script>
function loadXMLDoc() {
  var xmlhttp = new XMLHttpRequest();
  xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      myFunction(this);
    }
  };
  xmlhttp.open("GET", "cd_catalog.xml", true);
  xmlhttp.send();
}
function myFunction(xml) {
  var i;
  var xmlDoc = xml.responseXML;
  var table="<tr><th>Artist</th><th>Title</th></tr>";
  var x = xmlDoc.getElementsByTagName("CD");
  for (i = 0; i <x.length; i++) {
    table += "<tr><td>" +
    x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue +
    "</td><td>" +
    x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue +
    "</td></tr>";
  }
  document.getElementById("demo").innerHTML = table;
}
</script>

</body>
</html> 亲自试一试 »

如需更多有关使用 JavaScript 和 XML DOM 的信息,请访问 DOM 简介



在 HTML div 元素中显示第一首曲子

本例使用一个函数 id="showCD" 的 HTML 元素中显示第一首歌曲:

实例

displayCD(0);

function displayCD(i) {
  var xmlhttp = new XMLHttpRequest();
  xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      myFunction(this, i);
    }
  };
  xmlhttp.open("GET", "cd_catalog.xml", true);
  xmlhttp.send();
}

function myFunction(xml, i) {
  var xmlDoc = xml.responseXML;
  x = xmlDoc.getElementsByTagName("CD");
  document.getElementById("showCD").innerHTML =
  "Artist: " +
  x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue +
  "<br>Title: " +
  x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue +
  "<br>Year: " +
  x[i].getElementsByTagName("YEAR")[0].childNodes[0].nodeValue;
} 亲自试一试 »

在曲目之间导航

如需在上例中的曲目间导航,请添加 next()previous() 函数:

实例

function next() {
  // 显示下一张 CD,除非您在最后一张 CD
  if (i < len-1) {
    i++;
    displayCD(i);
  }
}

function previous() {
  // 显示上一张 CD,除非您在第一张 CD
  if (i > 0) {
    i--;
    displayCD(i);
  }
} 亲自试一试 »

在点击歌曲时显示专辑信息

最后这个例子演示当用户点击某一首歌曲时如何显示专辑信息:

实例

function displayCD(i) {
  document.getElementById("showCD").innerHTML =
  "Artist: " +
  x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue +
  "<br>Title: " +
  x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue +
  "<br>Year: " +
  x[i].getElementsByTagName("YEAR")[0].childNodes[0].nodeValue;
}
亲自试一试 »

0 人点赞过