dmo*_*moz 8 html xml ajax jquery
我正在尝试从XML Feed中提取一些股票信息并将其写入我网站上的某些现有div.
更新:由于CORS,我现在正在使用php代理.见下面的代码.
更新2:好的,到达那里.我下面更新的jQuery是第一个stockPrice变量,但不是剩下的三个.为所有这些数据提取的数据都是数字,所以我不确定为什么只有一个会工作.
这是我的HTML:
<div class="sidenavwrap">
<div class="sidenavhd"><p class="stocktitle">XXXX (Common Stock)</div>
<div class="ctcol3"><p class="stocklft">Exchange</p></div>
<div class="ctcol4"><p class="stocklft">NASDAQ (US Dollar)</p></div>
<div id="stock-divider"></div>
<div class="ctcol3"><p class="stocklft">Price</p></div>
<div class="ctcol4"><p class="stocklft" id="stockPrice"></p></div>
<div id="stock-divider"></div>
<div class="ctcol3"><p class="stocklft">Change (%)</p></div>
<div class="ctcol4"><p class="stockpriceneg" id="changePercent"></p></div>
<div id="stock-divider"></div>
<div class="ctcol3"><p class="stocklft">Volume</p></div>
<div class="ctcol4"><p class="stocklft" id="stockVolume"></p></div>
<div id="stock-divider"></div>
<p style="text-align: center;">Minimum 10 minute delay</p>
<div id="stock-divider"></div>
<br><br><br>
<!-- end sidenavwrap --></div>
Run Code Online (Sandbox Code Playgroud)
这是我的proxy.php:
// Set return content type
header('Content-type: application/xml');
// Website url to open
$url = 'http://xml.corporate-ir.net/irxmlclient.asp?compid=XXXXXX&reqtype=quotes';
// Get the content
$handle = fopen($url, "r");
// If there is something, read and return
if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle, 4096);
echo $buffer;
}
fclose($handle);
}
Run Code Online (Sandbox Code Playgroud)
这是我通过代理提取数据的jQuery:
<script>
$(document).ready(function(){
$.get("includes/proxy.php", function (data){
// Some callback functions
var stockPrice = ($(data).find('Trade').text());
var changeValue = ($(data).find('Change').text());
var stockVolume = ($(data).find('Volume').text());
var changePercentLong = (changeValue / (stockPrice - changeValue)) * 100;
var changePercent = changePercentLong.toFixed(2);
$('#stockPrice').html('$' + stockPrice);
$('#changePercent').html(changeValue + ' (' + changePercent + '%)');
$('#stockVolume').html(stockVolume);
if (changeValue >= 0) {
$('#changePercent').removeClass('stockpriceneg').addClass('stockprice');
} else {
$('#changePercent').removeClass('stockprice').addClass('stockpriceneg');
}
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
更新2:仍然没有在控制台中出现任何错误,现在我有第一个变量显示正确,但其他人只显示0(他们应该是-0.23,一些数学与前一个变量,5039270分别):

我认为这只是我的jQuery中的一个语法错误,但是我在JS/jQuery中发现它并不够完善.我相信更有经验的人可以在一秒钟内发现问题.谁能告诉我这里我做错了什么?非常感谢!
这是最终与我在原始问题中发布的 PHP 代理一起使用的 jQuery:
<script>
$(document).ready(function(){
$.get("includes/proxy.php", function (data){
// Some callback functions
var stockPrice = ($(data).find('Trade').text());
var changeValue = ($(data).find('Change').text());
var stockVolume = ($(data).find('Volume').text());
var changePercentLong = (changeValue / (stockPrice - changeValue)) * 100;
var changePercent = changePercentLong.toFixed(2);
$('#stockPrice').html('$' + stockPrice);
$('#changePercent').html(changeValue + ' (' + changePercent + '%)');
$('#stockVolume').html(stockVolume);
if (changeValue >= 0) {
$('#changePercent').removeClass('stockpriceneg').addClass('stockprice');
} else {
$('#changePercent').removeClass('stockprice').addClass('stockpriceneg');
}
});
});
</script>
Run Code Online (Sandbox Code Playgroud)