我对现在发生的事情感到非常困惑,这非常令人沮丧,因为在过去的几周中我已经多次这样做了,没有错误。但突然之间,使用 JavaScript 在 HTML 页面中显示 XML 数据变得不可能了。让我解释。
我在 Microsoft Visual Studio 2012 Ultimate 工作。在过去的几周里,我创建了几个网页(作为 ASP.NET 项目和 .aspx 文件而不是 .html)。这一次,我没有创建 .aspx 文件,而是创建了一个 .html 文件,您可以在下面看到。请注意,我已将 CSS 和 JavaScript 内联,以便于阅读:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<style type = "text/css">
h2 {color:Navy}
li
{
font-family : monospace;
font-weight: bold;
color:Navy;
}
li:hover {color: red;}
</style>
<script type="text/javascript">
$(document).ready(function () {
$.ajax({
type: "GET",
url: "stylesheets/stocks.xml",
dataType: "xml",
success: function (xml) {
$(xml).find('Stock').each(function () {
var company = $(this).find('Company').text();
var market = $(this).find('Market').text();
var sector = $(this).find('Sector').text();
var price = $(this).find('Price').text();
$("#company").html(company);
$("#market").html(market);
$("#sector").html(sector);
$("#price").html(price);
});
}
});
});
</script>
</head>
<body onload="onBodyLoad()">
<h2>List of Stocks:</h2>
<div id="stockList">
<ul><!--Temporary-->
<li>BA</li>
<li>CSCO</li>
<li>ED</li>
<li>GOOG</li>
<li>MO</li>
</ul><!--temp-->
</div>
<div id="stockInfo"> <!--Make a script to Show/Hide this div. Hide on default-->
<table>
<tr>
<td>1.</td><td>Company - </td><td id="company"></td>
</tr>
<tr>
<td>2.</td><td>Market - </td><td id="market"></td>
</tr>
<tr>
<td>3.</td><td>Sector - </td><td id="sector"></td>
</tr>
<tr>
<td>4.</td><td>Price - </td><td id="price"></td>
</tr>
</table>
</div>
</body>
</html>
我要做的就是在我提供的表中显示 XML 数据。在各自的表格单元格中输出公司的名称、市场、部门和股价(ex id="company")。最终结果应如下所示:
- 公司 - 谷歌
- 市场 - 纳斯达克
- 部门 - 软件
- 价格 - 487.80 美元
相反,我得到的是:
- 公司 -
- 市场 -
- 部门 -
- 价格 -
我之前已经多次使用相同的循环(只需要修改变量名等等),效果很好。但是现在,出于某种奇怪的原因,这个脚本不起作用。有趣的是,我已经将 XML 内容复制并粘贴到另一个 ASPX 项目中的另一个 XML 文件中,并且(当然,对脚本变量名称进行了一些修改等等)XML 数据显示得很好......它只是在这种非常令人沮丧的特殊情况下似乎不起作用。我已经重新编写并重写了几乎 4 次涉及的所有 XML、HTML 和 JavaScript,但是,当我加载 HTML 页面时,我只盯着我用 HTML 硬编码的内容,没有 XML 数据。就像脚本甚至没有运行一样。这个 html 文件位于根文件夹中,而 XML 文件我 试图从中获取数据的 m 位于名为“stylesheets”的根文件夹中的文件夹中。该文件名为stocks.xml。因此,我在 JavaScript 中输入的目录是正确的。
我只是不明白......我做错了什么?